[Python-Dev] __metaclass__

Guido van Rossum guido@python.org
Thu, 29 Nov 2001 16:50:09 -0500


> Maybe I'm missing something, but why doesn't the following
> raise errors:
> 
> class X(object):
>     __metaclass__ = type
> 
> X()
> X(1)
> X(1, 2, 3, a="x", b="y")
> 
> I would have expected 'this constructor takes no arguments'
> errors on the last two lines. Or is this expected behaviour?

Neither object.__init__ nor object.__new__ pays any attention to its
argument list.  If they did, subclassing would be more difficult.

--Guido van Rossum (home page: http://www.python.org/~guido/)