一、多重繼承
1、經典類 vs 新式類2、多重繼承python 2.x中預設都是經典類,只有顯式繼承了object才是新式類
python 3.x中預設都是新式類,不必顯式的繼承object
python中乙個類可以同時繼承多個類
二、深度優先class 類名(父類1,父類2,...)
類體
1、經典類採用深度優先搜尋2、說明:class p1:
def foo(self):
print 'p1-foo'
class p2 :
def foo(self):
print 'p2-foo'
def bar(self):
print 'p2-bar'
class c1 (p1,p2):
pass
class c2 (p1,p2):
def bar(self):
print 'c2-bar'
class d(c1,c2):
pass
d = d()
d.foo() # 輸出 p1-foo
d.bar() # 輸出 p2-bar
例項d呼叫foo()時,搜尋順序是 d => c1 => p1三、廣度優先例項d呼叫bar()時,搜尋順序是 d => c1 => p1 => p2
經典類的搜尋方式:從左到右,深度優先
1、新式類採用廣度優先搜尋2、說明class p1(object):
def foo(self):
print 'p1-foo'
class p2(object):
def foo(self):
print 'p2-foo'
def bar(self):
print 'p2-bar'
class c1 (p1,p2):
pass
class c2 (p1,p2):
def bar(self):
print 'c2-bar'
class d(c1,c2):
pass
d=d()
d.foo() # 輸出 p1-foo
d.bar() # 輸出 c2-bar
例項d呼叫foo()時,搜尋順序是 d => c1 => c2 => p1四、總結圖示例項d呼叫bar()時,搜尋順序是 d => c1 => c2
類的多重繼承
程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 張傳新 完成日期 2012 年 05 月 08 日 版 本 號 1.0 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 include includeusing namespace std class teac...
類的多重繼承
類的多重繼承 引入 通常乙個事物會同時具有多種基類的屬性,如乙個老師同時是職員也是一位父親,這個時候就會使用多重繼承來展示事物的本質屬性 1 形式 class a 繼承方式 b,繼承方式 c 注 以逗號在多個基類間產生分隔 2 建構函式 同樣是在派生類建構函式中利用函式總表初始化各個基類,先呼叫基類...
python的多重繼承
在設計類的繼承關係時,通常,主線都是單一繼承下來的,如果需要 混入 額外的功能,通過多重繼承就可以實現,這種設計通常稱之為mixin。class animal object pass class mammal animal pass class runnable object def run sel...