python 中 class 碱基的顺序重要吗?
Does order of class bases in python matter?
下面的两个 类 有(有意义的)区别吗?
class A(Foo, Bar):
...
对
class B(Bar, Foo):
...
Does order of class bases in python matter?
是的,确实如此。考虑以下因素:
class A:
def foo(self):
print('class A')
class B:
def foo(self):
print('class B')
class C(A, B):
pass
c = C()
c.foo() # class A
方法是从 left-to-right 解析的——例如,在示例中,foo
方法来自 class A,因为 A 在 B 之前。
下面的两个 类 有(有意义的)区别吗?
class A(Foo, Bar):
...
对
class B(Bar, Foo):
...
Does order of class bases in python matter?
是的,确实如此。考虑以下因素:
class A:
def foo(self):
print('class A')
class B:
def foo(self):
print('class B')
class C(A, B):
pass
c = C()
c.foo() # class A
方法是从 left-to-right 解析的——例如,在示例中,foo
方法来自 class A,因为 A 在 B 之前。