Christopher Subich wrote: > Jan-Ole Esleben wrote: > >> class Meta(type): >> def __new__(cls, name, bases, d): >> d['classvar'] = [] >> return type.__new__(cls, name, bases, d) > > > The problem is that __new__ is called upon object construction, not > class definition, but you're trying to set the class variables at > definition-time.
The metaclass __new__() is called on class creation (the class is the object being constructed) but not until after the body of the class definition is executed; the dictionary passed to __new__() contains the methods and class variables defined by the class statement. See http://www.python.org/2.2/descrintro.html#metaclasses Kent -- http://mail.python.org/mailman/listinfo/python-list