[Python-Dev] @decoration of classes
Delaney, Timothy C (Timothy)
tdelaney at avaya.com
Thu Mar 31 02:19:31 CEST 2005
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
More information about the Python-Dev
mailing list