Metaclass of a metaclass
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Tue Jun 5 04:48:21 EDT 2012
I was playing around with metaclasses and I wondered what would happen if
the metaclass itself had a metaclass. Sort of a metametaclass.
Apparently it gives an error. Can anyone explain why this does not work?
# Python 3.2
>>> class MyType(type): # A metaclass...
... def __repr__(self):
... s = super().__repr__()
... return s.replace('class', 'metaclass')
...
>>> class Meta(metaclass=MyType): # ... of a metaclass.
... pass
...
>>> Meta
<metaclass '__main__.Meta'>
>>>
>>> isinstance(Meta, type)
True
>>>
>>>
>>> class MyClass(metaclass=Meta): # And now try to use it.
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object.__new__() takes no parameters
What am I doing wrong?
--
Steven
More information about the Python-list
mailing list