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...