我有一個關於python的super()和多重繼承的語法問題。假設我有A和B類,兩者都有hello()方法。我有一個C類繼承自A和B的順序。python超級問題
如何從C顯式調用B的hello()方法?似乎很簡單,但我似乎無法找到它的語法。
我有一個關於python的super()和多重繼承的語法問題。假設我有A和B類,兩者都有hello()方法。我有一個C類繼承自A和B的順序。python超級問題
如何從C顯式調用B的hello()方法?似乎很簡單,但我似乎無法找到它的語法。
從C
hello
方法顯式調用B
的:
B.hello(self,...)
>>> class A(object):
def hello(self):
print "hello from A"
>>> class B(object):
def hello(self):
print "hello from B"
>>> class C(A, B):
def hello(self):
print "hello from C"
>>> c = C()
>>> B.hello(c)
hello from B
>>> # alternately if you want to call it from the class method itself..
>>> class C(A, B):
def hello(self):
B.hello(self) # actually calling B
>>> c = C()
>>> c.hello()
hello from B
你可能要考慮使用超() - 而不是硬編碼B.hello() - 作爲解釋在Python's super() considered super。在這種方法中,C.hello()使用super()並自動調用A.hello(),然後使用super()並自動調用B.hello(),而不需要對類名進行硬編碼。
否則,B.hello()確實是做你想做的事的正常方法。
+1用於指向Hettinger super()文章的指針。 – bgporter