title: Python Metaclass __new__ method not getting called
body: <p>Based on my limited Python knowledge Metaclass is another class. In the following example I am just building a metaclass. Here I overloaded the <code>__new__</code> method. My expectation is at the end of the class declaration when <code>type.__new__()</code>
  is called it will be delegated to <code>MyMeta.__new__()</code>. But that never happens.</p>
  
  <pre><code>print('Building MetaOne')
  
  class MyMeta(type):
        def __new__(meta, classname, supers, classdict):
            print('In MyMeta:', classname)
  
        def myfunc(self):
            print ('In myfunc')
  </code></pre>
  
  <p>Here from <code>MyMeta</code>'s <code>__new__()</code> I don't see the print.</p>
  
  <p>But on the contrary if I now use <code>MyMeta</code> class as a meta class to another class like:</p>
  
  <pre><code>print('Building Another class')
  class Super(metaclass = MyMeta):
        def myfunc(self):
            print ('In Super myfunc')
  </code></pre>
  
  <p>At the end of this class I see MyMeta's <code>__new__</code> is getting invoked.</p>
  
  <p>Can some one please help me understand why this happens?</p>