On Sat, 11 Jun 2011 01:33:25 -0400, Terry Reedy wrote: > On 6/10/2011 11:34 PM, Steven D'Aprano wrote: >> I have a metaclass in Python 3.1: >> >> class MC1(type): >> @staticmethod >> def get_mro(bases): >> print('get_mro called') >> return type('K', bases, {}).__mro__[1:] > > The call to type figures out the proper metaclass from bases and > forwards the call to that (or to its __new__ method). [...] > Since uou do not pass dict to get_mro. it passes {} to type and MC1 and > the test for docstring fails and the loop is broken and the empty class > is discarded after getting its mro.
Thanks for the explanation. You confused me for a while talking about MC1, because that's the metaclass that *doesn't* raise an exception, but I think I see the issue now. -- Steven -- http://mail.python.org/mailman/listinfo/python-list