python函数重载吗

python

python中是不支持函数重载的,但在python3中提供了这么一个装饰器functools.singledispatch,它叫做单分派泛函数,可以通过它来完成python中函数的重载,让同一个函数支持不同的函数类型,它提供的目的也正是为了解决函数重载的问题。 

看下面的例子,应该知道怎么去使用它完成函数的重载。

from functools import singledispatch

@singledispatch

def show(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 <class 'int'> int

xx <class 'str'> str

[1] <class 'list'> obj

以上是 python函数重载吗 的全部内容, 来源链接: utcz.com/z/524780.html

回到顶部