python中是不支持函數(shù)重載的,但在python3中提供了這么一個(gè)裝飾器functools.singledispatch,它叫做單分派泛函數(shù),可以通過(guò)它來(lái)完成python中函數(shù)的重載,讓同一個(gè)函數(shù)支持不同的函數(shù)類(lèi)型,它提供的目的也正是為了解決函數(shù)重載的問(wèn)題。
看下面的例子,應(yīng)該知道怎么去使用它完成函數(shù)的重載。
fromfunctoolsimportsingledispatch
@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])
結(jié)果為:
1int
xxstr
[1]obj
以上內(nèi)容為大家介紹了python培訓(xùn)之函數(shù)重載嗎,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。