Play with classes
__peter__ at web.de
Thu Feb 26 12:50:56 CET 2004
Zunbeltz Izaola wrote:
> Hi to all!
> I wonder if it possible (i'm sure python can do :-) ) to define classes on
> runtime. My problem (schematically) is the folowwin.
> The User can choise betwenn 3 property of an object.
> Mode, Type and Subtype.
> I have the following classes defined
> ModeA, ModeB, TypeA, TypeB, TypeC, SubtypeA, SubtypeB.
> Supose the user whant to combine ModeA with TypeB and SubtypeB, so I need
> something like
> class UserClass(ModeA, TypeB, SubtypeB):
> I can define all the posibilitys different classes and the using nested
> if/else I can use the correct class, but I want to know if there is a way
> generate in the fly and in this way there is no necesarity to change code
> whe new Modes or Types are created.
> I hope it is clear enough :-)
> Thanks in advance
How about assigning to __bases__?
>>> class A:
... def alpha(self): print "alpha"
>>> class B:
... def beta(self): print "beta"
>>> class C: pass
>>> C.__bases__ = (A,B)
>>> c = C()
Trying the same thing with newstyle class resulted in a TypeError:
>>> E.__bases__ = (A, B)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: __bases__ assignment: 'A' deallocator differs from 'object'
More information about the Python-list