我正在研究对象是如何在 Python 中出现的,出于好奇,我已经了解了方法解析顺序。
在 Python 中,Cl
具有 base Ba
when 的类将具有属性__mro__
,包含(<class 'Cl'>, <class 'Ba'>, <class 'object'>)
. 元类可以定义mro()
,它将为__mro__
子类提供一个自定义元组,以便在定义时包含。
在 C 中,据我所知,这个赋值是由 处理的mro_internal
,但我看不到它是从哪里调用的。即使搜索也只会在测试中找到对它的引用。
将其表述为一个更可运行的问题;“如何在运行时重新定义实例的 MRO?”