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
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to