class printa:
namea="printa"
def set_value(self,a):
self.a=a
def set_namea(self,namea):
printa.namea=namea
def info(self):
print("printa:%s,%s"%(printa.namea,self.a))
class printb:
nameb="printb"
def set_nameb(self,nameb):
printa.nameb=nameb
def info(self):
print("printb:%s"%(printb.nameb))
class sub(printa,printb):
pass
class sub2(printb,printa):
pass
class sub3(printa,printb):
def info(self):#修改了info方法
printa.info(self)
printb.info(self)
print("使用第乙個子類")
sub=sub()
sub.set_value("aaaaa")
sub.info()
sub.set_nameb("bbbb")
sub.info()
print("使用第二個類")
sub2=sub2()
sub2.set_value("aaaaa")
sub2.info()
sub2.set_nameb("bbbb")
sub2.info()
print("使用第三個類")
sub3=sub3()
sub3.set_value("aaaa")
sub3.info()
sub3.set_nameb("bbb")
sub3.info()
**中有兩個父類a 和b
他們有乙個共同的方法時info
而第乙個子類sub先後繼承了父類a和b
例項化後先呼叫了a中的方法之後呼叫了info方法,由於父類都有info方法,但是由於繼承順序不同,所有繼承按優先順序排序。先輸出a類父類的info方法
而第二個子類,繼承順序不同,所以先輸出b父類的info方法,
python 多重繼承
python和c 一樣,支援多繼承。概念雖然容易,但是困難的工作是如果子類呼叫乙個自身沒有定義的屬性,它是按照何種順序去到父類尋找呢,尤其是眾多父類中有多個都包含該同名屬性。對經典類和新式類來說,屬性的查詢順序是不同的。現在我們分別看一下經典類和新式類兩種不同的表現 經典類 usr bin pyth...
python多重繼承
class d object pass class c d pass class b d pass class a b,c pass mro method resolution order 方法解析順序 為了解決多繼承問題 在inspect檔案中 採用aov圖,每次輸出乙個入度為零的點 相當於沒有人...
Python 多重繼承
class a object def test self print aaa class b object def test self print b中的test 方法 def test2 self print bbb 在python中是支援多重繼承的,也就是我們可以為乙個類同時指定多個父類 可以在...