title: Why does .mro() on a metaclass have a different signature? `descriptor 'mro' of 'type' object needs an argument`
body: <p>On most types/classes in Python, I can call <code>.mro()</code> without arguments.  But not on <code>type</code> and its descendants:</p>
  
  <pre><code>In [32]: type(4).mro()
  Out[32]: [int, object]
  
  In [33]: type(type(4)).mro()
  ---------------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-33-48a6f7fcd2fe&gt; in &lt;module&gt;()
  ----&gt; 1 type(type(4)).mro()
  
  TypeError: descriptor 'mro' of 'type' object needs an argument
  </code></pre>
  
  <p>It appears I can get what I want with <code>type(type(4)).mro(type(4))</code>, but why can't I call <code>mro()</code> directly as I do elsewhere?</p>