[Python-3000] PEP for Metaclasses in Python 3000 (original) (raw)

Georg Brandl g.brandl at gmx.net
Tue Mar 13 19:56:41 CET 2007


BJörn Lindqvist schrieb:

On 3/13/07, Guido van Rossum <guido at python.org> wrote:

> > I find this rather cool looking: > > > > class C(implements=(I1, I2)): ...

Me too. :-) But... What does it do? PEP says: In the new model, the syntax for specifying a metaclass is via a keyword argument in the list of base classes: class Foo(base1, base2, metaclass=mymeta): ... Additional keywords will also be allowed here, and will be passed to the metaclass, as in the following example: class Foo(base1, base2, metaclass=mymeta, private=True): ... Who is the receiver of the implements keyword argument in your example? Should it not be class class C(metaclass = SomethingHere, implements = (I1, I2))?

If Foo inherits from another class whose metaclass already accepts "implements", it should work.

I can't see how "class C(implements=(I1, I2))" would work though, without a hook to set a default metaclass.

Georg



More information about the Python-3000 mailing list