|
|
1
3
正如你所看到的,
MRO将始终包括 全部的 层次结构中的基类;无法在无法建立MRO的地方构建类层次结构。这可以防止在菱形继承模式中跳过类。 MRO的工作原理详见 The Python 2.3 Method Resolution Order . 您可能还想阅读 Guido van Rossum's explanation ; 他使用了一个菱形图案:
说明MRO为何重要;呼叫时
如果你真的想
跳过
对于您的
|
|
|
2
0
@Martijn Pieters的回答解释了观察到的结果是如何产生的。 如果有人想产生我对super错误期望的结果,可以使用基于@Sven Marnach在 python: super()-like proxy object that starts the MRO search at a specified class
如果你想得到一个班级应有的东西
可以用来获取
如果您对获得(第一个)直系祖先的类超构造感兴趣:
这样称呼:
我认为没有办法不显式包含当前类的名称,就像
请注意,这适用于特殊情况。例如,在我的示例中,如果
|
|
Fernando Chu · 一个变量有多个可能的类?[关闭] 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 1 年前 |
|
|
dEmigOd · 类层次结构中的运算符重载解析 1 年前 |
|
|
TableTopRug · 如何从Kotlin中的密封类继承? 1 年前 |
|
|
hasdrubal · 抽象基类函数指针python 1 年前 |
|
|
Josh · 通过反思访问孩子的财产 2 年前 |