python3中實現函式的過載

2021-09-30 14:06:43 字數 653 閱讀 9998

python中是不支援函式過載的,但在python3中提供了這麼乙個裝飾器functools.singledispatch,它叫做單分派泛函式,可以通過它來完成python中函式的過載,讓同乙個函式支援不同的函式型別,它提供的目的也正是為了解決函式過載的問題。

看下面的例子,應該知道怎麼去使用它完成函式的過載。

from functools import singledispatch

@singledispatch

defshow

(obj):

print (obj, type(obj), "obj")

@show.register(str)

def_

(text):

print (text, type(text), "str")

@show.register(int)

def_

(n):

print (n, type(n), "int")

show(1)

show("xx")

show([1])

結果:

1

'int'> int

xx 'str'> str

[1] 'list'> obj

Python3 中實現flattten函式

最近歲資料集進行處理的時候需要把多維資料轉換為一維的,但是python3中 已經不支援flatten函式了,所以自己寫了乙個把多維陣列轉換為一維陣列的函式。requires authorization coding utf 8 defflatten input list output list wh...

Python 3中實現cmp 函式的功能

cmp 函式是python 2中的乙個用於比較兩個列表,數字或字串等的大小關係的函式,在python 3中已經無法使用這個函式了 a 1,2,3 b 4,5,6 cmp a,b traceback most recent call last file line 1,in cmp a,b nameer...

python3中的format函式

原文出處 format函式常與print 函式結合使用,具備很強的格式化輸出能力。通過變數,逗號隔開 print 今天 format 我 攔路雨 action 在寫部落格 通過關鍵字使用字典傳入,在字典前加入 grade print 比較無聊,在 format grade 字典前加上 通過位置 pr...