Abstract Base Class register function

Benjamin musiccomposition at gmail.com
Sat Sep 27 22:53:53 EDT 2008


On Sep 27, 4:50 pm, "Mikolai Fajer" <mfa... at gmail.com> wrote:
> I have been experimenting with the abc module in py3k and thought
> about using the register method of an ABC as a class decorator:
>
> <code>
> import abc
> class MyABC(metaclass=abc.ABCMeta):
>     pass
>
> @MyABC.register
> class MySub():
>     pass
> </code>
>
> This doesn't work because the register method returns None.  It would
> be a fairly simple modification to have this work:
>
> <code>
>     def register(cls, subclass):
>         """Register a virtual subclass of an ABC."""
>         ... etc ...
>         return subclass
> </code>
>
> What do people think of this behavior?

It's probably better to just inherit from your metclass. register is
really for use with extension types that implement an interface.
>
> --
>
>      -Mikolai Fajer-




More information about the Python-list mailing list