重用是用於在物件的概念中,實現**的重用性
在繼承角度,在子類繼承父類之後,重新使用父類屬性方法即是**的重用
在組合角度,在乙個類中以另外乙個類的物件作為資料屬性,提高**的重用性
重用的方式:
繼承:
方式一:指名道姓的應用某乙個類中的函式(無關繼承,訪問函式不存在自動傳值)
例如:collegepeople.__init__(self, name, age, ***)
方式二:使用內建方法super(),返回特殊物件訪問屬性(嚴格依賴mro列表,存在自動傳值)
例如:super().__init__( name, age, ***)
組合:通過為某乙個物件新增屬性的方式,間接將兩個類進行關聯,減少類與類**冗餘
class foo:重寫用於繼承概念下,子類繼承父類需要同名的不同函式,即可修改重寫同名方法。*** = 222
class bar:
yyy = 111
obj = foo()
b = bar()
obj.attr = bar()
obj.a = b
obj.***x #呼叫foo內屬性
obj.attr.yyyy #呼叫bar內屬性
例如:
class parent: # 定義父類過載是,函式或者方法有相同的名稱,但是引數列表不相同(型別不同,數量不同,位置不同)的情形,這樣的同名不同引數的函式或者方法之間,互相稱之為過載函式或者方法。def mymethod(self):
print '呼叫父類方法'
class child(parent): # 定義子類
def mymethod(self):
print '呼叫子類方法'
c = child() # 子類例項
c.mymethod() # 子類呼叫重寫方法
python的實現過程中可能存在過載,但是在python的呈現使用中不存在過載的概念。
原因:python 可以接受任何型別的引數,而對那些缺少的引數設定為預設引數即可解決問題。即,python中引數傳遞時候的*arg和**kwargs
過載與重寫 重用與重構
在物件導向程式設計中分為方法過載和運算子過載。方法過載是讓類以統一的方式處理不同型別資料的一種手段。使用過載方法,可以在類中建立多個方法,它們具有相同的名字,但具有不同的引數和不同的定義。呼叫方法時,通過傳遞給它們的不同個數和型別的引數來決定具體使用哪個方法。運算子過載就是對已有的運算子重新進行定義...
關於python3裝Matplotlib模組的經驗
花了一天終於裝好了matplotlib 模組,之前用了很多方法,但還是沒有安裝成功,一直報錯 直接用pip install matplotlib 和pip install matplotlib 的whl檔案也是顯示錯誤,的build tool 然後安裝,然後我發現安裝 matplotlib 的話,還...
python3中實現函式的過載
python中是不支援函式過載的,但在python3中提供了這麼乙個裝飾器functools.singledispatch,它叫做單分派泛函式,可以通過它來完成python中函式的過載,讓同乙個函式支援不同的函式型別,它提供的目的也正是為了解決函式過載的問題。看下面的例子,應該知道怎麼去使用它完成函...