List, I've been messing with metaclasses. I thought I understood them until I ran into this. (See code below.) I was expecting the generated class, 'Foo' to have an 'x' class-level attribute, as forced upon it by the metaclass 'DracoMeta' at creation. Unfortunately, it doesn't and I don't know why. I'm obviously missing something big. I thought a metaclass created the class object, so this should work. (But obviously doesn't.)
<!-- Begin Code --> class DracoMeta(type): '''Metaclass that creates a serial number as a class property.''' def __init__(self, name, bases, members): # Force a class attribute on the class-to-be: members['serial'] = 3 # Now make the class: type.__init__(self, name, bases, members) class Foo(object): __metaclass__ = DracoMeta print hasattr(Foo, 'serial') #<-- I was really expecting this to be True. <!-- End Code --> I could add the attribute in the definition or a decorator, but the point was learning to use (albeit abuse) metaclasses. Anyway, if anyone could take a look I'd be grateful. Thanks! -Modulok- _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor