Adam Atlas wrote: > Isn't it a bit convoluted to use metaclasses? Yep. It's a well known fact that putting "convoluted" and "metaclasses" in the same sentence is repetitively redundant. ;-)
> someinstance.__class__.__name__ does the same thing. No, not really:: >>> class C(object): ... def __init__(self, name): ... self.name = name ... @classmethod ... def from_class_block(cls, name, bases, blockdict): ... return cls(name) ... >>> c = C('foo') >>> c.name 'foo' >>> type(c) <class '__main__.C'> >>> c.__class__.__name__ 'C' >>> class foo: ... __metaclass__ = C.from_class_block ... >>> foo.name 'foo' >>> type(foo) <class '__main__.C'> >>> foo.__class__.__name__ 'C' Note that the ``class foo`` statement is not creating a class. It's creating an instance of ``C``. So it really is doing something pretty different. STeVe -- http://mail.python.org/mailman/listinfo/python-list