2024-10-17 08:36:08 发布
网友
class MyClass(Class1, Class2): pass
双亲都有getImage方法。你知道吗
getImage
thing = MyClass() thing.getImage() #I want to call Class1's thing.getImage() #I want to call Class2's
调用哪个getImage?如何指定要调用哪一个?你知道吗
在这种情况下,thing.getImage将调用Class1.getImage,前提是它存在。如果要呼叫对方,可以使用较长的形式:
thing.getImage
Class1.getImage
Class2.getImage(thing)
可以通过类的方法解析顺序(__mro__)检查这些内容:
__mro__
>>> class foo(object): pass ... >>> class bar(object): pass ... >>> class baz(foo,bar): pass ... >>> print baz.__mro__ (<class '__main__.baz'>, <class '__main__.foo'>, <class '__main__.bar'>, <type 'object'>)
这表明首先搜索baz,然后搜索foo,然后搜索bar,最后搜索object。你知道吗
baz
foo
bar
object
Further reading about multiple inheritance
Further reading about mro
在这种情况下,
thing.getImage
将调用Class1.getImage
,前提是它存在。如果要呼叫对方,可以使用较长的形式:可以通过类的方法解析顺序(
__mro__
)检查这些内容:这表明首先搜索
baz
,然后搜索foo
,然后搜索bar
,最后搜索object
。你知道吗Further reading about multiple inheritance
Further reading about mro
相关问题 更多 >
编程相关推荐