python多型性與方法過載

2022-09-18 22:33:14 字數 840 閱讀 6095

1.python是沒有方法過載的

函式過載主要是為了解決兩個問題。

1。可變引數型別。 因為 python 可以接受任何型別的引數

2。可變引數個數。 那些缺少的引數設定為預設引數

2.不同物件呼叫同一介面,表現出不同的狀態,即是多型(鴨子型別)

class f1:

pass

# 假設,s1是我們的正統類,它繼承於根正苗紅的f1,是我們的正統類

class s1(f1):

def show(self):

print('s1.show')

# s2是路人甲,是個歪瓜裂棗,但是他自己也有乙個叫show的方法。

class s2:

def show(self):

print('s2.show')

# 在j**a或c#中定義函式引數時,必須指定引數的型別,也即是說,我們如果用

# j**a寫下面的func,需要告知,obj是f1類還是其他什麼東西。

# 如果限定了f1,那麼s2是不可以被採納的。

# 然而,在python中,一切都是obj,它不care你到底是什麼類,直接塞進去就可以

def func(obj):

"""func函式需要接收乙個f1型別或者f1子類的型別"""

obj.show()

s1_obj = s1()

func(s1_obj) # 在func函式中傳入s1類的物件 s1_obj,執行 s1 的show方法,結果:s1.show

s2_obj = s2()

func(s2_obj) # 在func函式中傳入ss類的物件 ss_obj,執行 ss 的show方法,結果:s2.show

Python 多型與多型性

同一種事務的多種形態 就是多型 車有多種形態,你沒有具體學習某乙個物件,你是學的怎麼開車 這就是多型性 1 增加了程式的靈活性 以不變應萬變,不論物件千變萬化,使用者都是同一種形式去呼叫,如func animal 2 增加了程式可擴充套件性 通過繼承animal類建立了乙個新的類,使用者無需改變自己...

c 多型性,多型,和過載

多型性分兩個部分 1.靜態多型性 通過過載實現,同名不同參。2.動態多型性 多型,子類覆蓋父類方法,執行時根據指標的型別來決定最終執行的方法。即 虛函式。過載是同名不同參,引數完全一樣順序不同也叫同名不同參。參考 在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數 指引數的...

多型與多型性

1.什麼是多型 多型指的是同一種 類事物的不同形態 2.為何要用多型性 1 增加了程式的靈活性 2 增加了程式的可擴張性 多型性 分為靜態多型性和動態多型性 多型性 在多型的背景下,可以在不用考慮物件具體型別的前提下而直接使用物件 多型性的精髓 統一 3.如何用多型 class animal def...