どのようにしてメタクラスがMROに表示されないのですか?例えばメソッドの分解順序とメタクラス
:
>>> class Foo(type):
... foo = 21
...
>>> class Bar(metaclass=Foo):
... pass
...
>>> Bar.mro()
[<class '__main__.Bar'>, <class 'object'>]
>>> Bar.foo
21
はまた、私はPythonがMROを計算するためにC3の線形化を使用していることを他の場所で見ましたが、この線形化はメタクラスを処理しません。その場合、Pythonはどんなアルゴリズムを使用しますか?
Barのインスタンスで呼び出そうとしましたか?それ以来、それは動作しません。 AFAIKメタクラスと多重継承はサポートされていません。しかし、私は今Fooに行く方法を失っています。 – deets