Почему мета-класс не отображается в MRO?Порядок разрешения и метаданные для метода
Например:
>>> class Foo(type):
... foo = 21
...
>>> class Bar(metaclass=Foo):
... pass
...
>>> Bar.mro()
[<class '__main__.Bar'>, <class 'object'>]
>>> Bar.foo
21
Кроме того, я увидел в другом месте, что Python использует C3 линеаризацию для вычисления MRO, но эта линеаризация не обрабатывает метаклассами. Итак, какой алгоритм использует Python в этом случае?
Вы попробовали позвонить ему на экземпляр бара? Потому что тогда это не сработает. И метаклассы AFAIK и множественное наследование не поддерживаются. Тем не менее, я нахожусь в недоумении, как добраться до Foo на данный момент. – deets