Classes with initialization

Carl Banks pavlovevidence at gmail.com
Tue Apr 10 01:16:11 CEST 2007


On Apr 9, 3:26 am, mariano.suarezalva... at gmail.com wrote:
> Hi all,
>
> I'm currently using code similar to this:
>
>   class ClassWithInitialization(type):
>       def __init__(cls, name, bases, dict):
>           type.__init__(name, bases, dict)
>           dict['__class_init__'](cls)
>
>   class A:
>       __metaclass__ = ClassWithInitialization
>
>       def __class_init__(cls):
>           cls.some_attribute = ...
>           ...
>
> in order to get class attributes initialized (since the values of
> these attributes
> need non trivial work to be computed, putting the code that does that
> computation in the class scope ends up with the class having extra
> attributes---the `local' variables used in the computation of the
> values of class attribute; so I'm using __class_init__'s scope to
> contain those variables)
>
> I was wondering: is there a simpler approach to this?

You could put the computations right in the class, and del the extra
variables when done.


Carl Banks




More information about the Python-list mailing list