Nick Maclaren wrote: > > Well, I am already doing that, and regretting the fact that Python > doesn't seem to allow a class instantiation to return a new class :-) >
>>> class Fake(object): ... def __new__(cls): ... return 42 ... >>> Fake() 42 >>> "instantiation" (i.e., calling the __new__ method) of new-style classes can return whatever you like, but I'm not sure how that helps. One way of having a class member refer to the class, is to use the descriptor protocol, e.g.,: >>> def brinjal(cls): return cls.__name__ ... >>> class Brinjal(object): # must be new-style ... def __get__(self, obj, cls): return brinjal(cls) ... >>> class Weeble(object): # should be new-style ... wumpus = Brinjal() ... >>> Weeble.wumpus 'Weeble' >>> Weeble().wumpus 'Weeble' >>> Michael -- http://mail.python.org/mailman/listinfo/python-list