title: metaclass error: type.__init__() takes 1 or 3 arguments
body: <p>I have a metaclass:</p>
  
  <pre><code>class MyMeta(type):
      def __init__(cls, name, bases, dct):
          # Do something
          ...
  
          return super(MyMeta, cls).__init__(cls, name, bases, dct)
  </code></pre>
  
  <p>and a class:</p>
  
  <pre><code>class MyClass(object):
      __metaclass__ = MyMeta
  </code></pre>
  
  <p>When I use these I get the following error:</p>
  
  <pre class="lang-none prettyprint-override"><code>TypeError: Error when calling the metaclass bases
      type.__init__() takes 1 or 3 arguments
  </code></pre>
  
  <p>What's the problem, and why does <code>type.__init__()</code> take a precisely variable number of arguments?</p>