Specifying __slots__ in a dynamically generated type
Ron Garret
rNOSPAMon at flownet.com
Sun Mar 27 20:59:14 EST 2005
In article <K-idnZPlpO4ZttrfRVn-2g at comcast.com>,
Steven Bethard <steven.bethard at gmail.com> wrote:
> Ron Garret wrote:
> > I need to dynamically generate new types at run time. I can do this in
> > two ways. I can use the "type" constructor, or I can generate a "class"
> > statement as a string and feed that to the exec function. The former
> > technique is much cleaner all else being equal, but I want to be able to
> > specify the __slots__ class variable for these new types, and it seems
> > that to do that I need to use the latter method. Is that true? Is it
> > really impossible to specify __slots__ using the "type" constructor?
>
> Why don't you just write a function to create class objects?
>
> def f(*params):
> class C(...):
> ... # based on params
> return C
I suppose I could. When I originally started writing this code I wanted
each of the generated classes to have its own name, and I didn't realize
that you could accomplish this by assigning to cls.__name__ after you
created it. So I started down the road of using the type constructor.
But there's not really a good reason for it now. Maybe I'll go back and
change my code.
rg
More information about the Python-list
mailing list