Nick Coghlan wrote:
# A decorator that does not alter its argument def register(callable): # Register the callable somewhere ... return callable
# Decorated factory function @register def factory(): pass
# Post-decorated class class factory: pass register(factory)
# Metaclass class RegisteredType(type): def __init__(self, name, bases, dict): super(self, RegisteredType).__init__(self, name, bases, dict) register(self)
class factory: __metaclass__ = RegisteredType
# Class decorator (not currently possible) @register class factory: pass
class factory: @register def __call__(self): pass Just as an additional data point - obviously not applicable in all cases. Tim Delaney