1 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
回答問(wèn)題1:
它會(huì)跳過(guò)myFuncA 類,因?yàn)楫?dāng)您調(diào)用時(shí),pythonsuper.myFunc()會(huì)搜索myFunc所有基類中具有名稱的第一個(gè)函數(shù)(在本例中為B和A),并且它按順序執(zhí)行此操作,因此它首先myFunc在 class 中查找B。因此,因?yàn)閜ythonmyFunc類中有一個(gè)名為的函數(shù),所以停止搜索并僅執(zhí)行該函數(shù)。B
回答問(wèn)題2:
有一個(gè)簡(jiǎn)單的方法可以做到這一點(diǎn):
class A:
def f(self):
print('A')
class B:
def f(self):
print('B')
class C(B, A):
def f(self):
A.f(self)
B.f(self)
c = C()
c.f()
基本上,您可以調(diào)用任何類的任何函數(shù),然后將實(shí)例作為第一個(gè)參數(shù) ( self) 傳遞。我相信您無(wú)法僅通過(guò)一次調(diào)用來(lái)執(zhí)行這兩個(gè)函數(shù),您需要對(duì)每個(gè)函數(shù)進(jìn)行一次調(diào)用。
添加回答
舉報(bào)