Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #49321

Re: class factory question

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder7.xlned.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <joshua.landau.ws@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.011
X-Spam-Evidence '*H*': 0.98; '*S*': 0.00; 'parser': 0.07; 'classes.': 0.09; 'tmp': 0.09; 'subject:question': 0.10; 'cc:addr:python- list': 0.11; '(defined': 0.16; 'library).': 0.16; 'pythonic': 0.16; 'subject:class': 0.16; '{})': 0.16; 'wrote:': 0.18; 'module': 0.19; 'cc:addr:python.org': 0.22; 'this?': 0.23; 'cc:2**0': 0.24; "i've": 0.25; 'this:': 0.26; 'pass': 0.26; 'header:In-Reply-To:1': 0.27; 'external': 0.29; 'tim': 0.29; 'message-id:@mail.gmail.com': 0.30; 'lines': 0.31; 'that.': 0.31; 'bunch': 0.31; 'extending': 0.31; 'way?': 0.31; 'class': 0.32; 'classes': 0.35; 'created': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'earth': 0.36; 'surely': 0.36; 'doing': 0.36; 'same.': 0.38; 'name': 0.63; 'more': 0.64; 'to:addr:gmail.com': 0.65; 'behavior': 0.77; '2013': 0.98
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=J2/h1sv7y8KgtKIMNhyvQmgd5ZNOtT2lI+oRBaZdgOg=; b=yEuVxrl1Cxs+1tggFzE4Yr8Kb5Zz9WDWcLD5QlY+vzuzdb1M+Cr54wSJ+XNaKBnqgr 1REubMlvxzvAUurJot2c0BQOa7cKQTL7170IXAOQ2vSK7DDen72227uBStesQUA054bx HymR6H4TIYiQysj+lGtcgbDjujzpqZA0vR2T/GzYirCxxmZRDygzToO189oZ5M87zw1O E7Vpj4cai3mOTjNOhY65PRkA2/DB6JBelOg5Oj1bv8Pj2rNV8060lT+hwP6mWxTAAmYM iAYeB2DwhVugRxoNstSLqwuO10xSn3dLEKmQ1oO9zIUWfjY+sm91R49zyPVbOtP2qsPR FSfQ==
X-Received by 10.152.121.73 with SMTP id li9mr4258974lab.42.1372339050735; Thu, 27 Jun 2013 06:17:30 -0700 (PDT)
MIME-Version 1.0
In-Reply-To <138ce5a8-1b4c-49d4-8005-d5f4642dcb97@googlegroups.com>
References <138ce5a8-1b4c-49d4-8005-d5f4642dcb97@googlegroups.com>
From Joshua Landau <joshua.landau.ws@gmail.com>
Date Thu, 27 Jun 2013 14:16:50 +0100
Subject Re: class factory question
To Tim <jtim.arnold@gmail.com>
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding quoted-printable
Cc python-list <python-list@python.org>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.3928.1372339429.3114.python-list@python.org> (permalink)
Lines 22
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1372339429 news.xs4all.nl 15951 [2001:888:2000:d::a6]:35352
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:49321

Show key headers only | View raw


On 26 June 2013 14:09, Tim <jtim.arnold@gmail.com> wrote:
> I am extending a parser and need to create many classes that are all subclassed from the same object (defined in an external library).  When my module is loaded I need all the classes to be created with a particular name but the behavior is all the same. Currently I have a bunch of lines like this:
>
>     class Vspace(Base.Command): pass
>     class Boldpath(Base.Command): pass
>
> There are a bunch of lines like that.
> Is there a better way? Something like
>
>     newclasses = ['Vspace', 'Boldpath', ... ]
>     for name in newclasses:
>         tmp = type(name, (Base.Command,) {})
>         tmp.__name__ = name
>
> Is there a more pythonic way?

I've just realised -- why on earth are you doing this? Surely there's
a better way than having 50 identical classes. :/

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

class factory question Tim <jtim.arnold@gmail.com> - 2013-06-26 06:09 -0700
  Re: class factory question Peter Otten <__peter__@web.de> - 2013-06-26 15:39 +0200
    Re: class factory question Tim <jtim.arnold@gmail.com> - 2013-06-26 07:08 -0700
      Re: class factory question Peter Otten <__peter__@web.de> - 2013-06-26 16:46 +0200
        Re: class factory question Tim <jtim.arnold@gmail.com> - 2013-06-26 08:05 -0700
      Re: class factory question Joshua Landau <joshua.landau.ws@gmail.com> - 2013-06-26 16:17 +0100
      Re: class factory question Peter Otten <__peter__@web.de> - 2013-06-26 17:40 +0200
      Re: class factory question Joshua Landau <joshua.landau.ws@gmail.com> - 2013-06-27 00:20 +0100
  Re: class factory question Fábio Santos <fabiosantosart@gmail.com> - 2013-06-27 00:35 +0100
  Re: class factory question Joshua Landau <joshua.landau.ws@gmail.com> - 2013-06-27 14:16 +0100
    Re: class factory question Tim <jtim.arnold@gmail.com> - 2013-06-27 06:37 -0700
      Re: class factory question Dave Angel <davea@davea.name> - 2013-06-27 09:48 -0400
        Re: class factory question Irmen de Jong <irmen.NOSPAM@xs4all.nl> - 2013-06-27 17:56 +0200
          Re: class factory question Tim <jtim.arnold@gmail.com> - 2013-06-27 09:40 -0700

csiph-web