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

    python函数重载吗

    (*-*)浩(*-*)浩2019-08-30 11:59:21原创3563
    python中是不支持函数重载的,但在python3中提供了这么一个装饰器functools.singledispatch,它叫做单分派泛函数,可以通过它来完成python中函数的重载,让同一个函数支持不同的函数类型,它提供的目的也正是为了解决函数重载的问题。

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    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

    2

    3

    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学习网