• 技术文章 >常见问题 >Python常见问题

    python函数重载吗

    (*-*)浩(*-*)浩2019-08-30 11:59:21原创3396
    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
    上一篇:python的代码怎么跑 下一篇:python的函数如何接收参数

    相关文章推荐

    • python判断某一元素是否整数• 如何查看python的库• python判断元素是否是字符串类型• python用install失败怎么解决

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网