擅长:python、mysql、java
<p>继承在python中是一个非常灵活的概念。对于初学者,应该始终使用新样式类。为此,请确保您的类应该始终从“object”继承。在</p>
<p>需要注意的是,类必须从其他类继承,而不是从其他类的实例继承,因此您的示例在那里真的不起作用。事实上,我真的看不出从X或x1继承的区别。在</p>
<p>python中的继承与“方法解析顺序”(methodresolutionorder,MRO)密切相关。您可以使用inspect模块查看对象MRO。在</p>
<pre><code>>>> import inspect
>>> import pprint
>>>
>>> class X(object):
... pass
...
>>> class Y(X):
... pass
...
>>>
>>> pprint.pprint(inspect.getmro(Y))
(<class '__main__.Y'>, <class '__main__.X'>, <type 'object'>)
>>>
</code></pre>
<p>末尾的元组显示了python尝试解析方法和属性调用的顺序。可以通过修改类的<code>__bases__</code>属性在运行时修改MRO。在</p>
^{pr2}$
<p>如果您的任何类使用多重继承,或者您希望保留继承树的某些部分而不保留其他部分,则这可能会变得复杂。在</p>