python3 關於重用 重寫 過載

2021-08-25 08:03:17 字數 1204 閱讀 6928

重用是用於在物件的概念中,實現**的重用性

在繼承角度,在子類繼承父類之後,重新使用父類屬性方法即是**的重用

在組合角度,在乙個類中以另外乙個類的物件作為資料屬性,提高**的重用性

重用的方式:

繼承:

方式一:指名道姓的應用某乙個類中的函式(無關繼承,訪問函式不存在自動傳值)

例如: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中函式的過載,讓同乙個函式支援不同的函式型別,它提供的目的也正是為了解決函式過載的問題。看下面的例子,應該知道怎麼去使用它完成函...