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

Reply via email to