Python 如何处理方法重载?

DDD
发布: 2024-10-22 21:35:30
原创
998 人浏览过

How Does Python Handle Method Overloading?

Python 中的方法重载

在 Python 中,方法重载与方法重写不同。要重载方法,您可以使用具有默认参数值的单个函数。

<code class="python">class A:
    def stackoverflow(self, i='some_default_value'):
        print('only method')

ob = A()
ob.stackoverflow(2)  # prints 'only method'
ob.stackoverflow()   # prints 'only method' with 'some_default_value'</code>
登录后复制

但是,Python 3.4 引入了单个调度泛型函数以提供更全面的方法重载机制。

<code class="python">from functools import singledispatch

@singledispatch
def fun(arg, verbose=False):
    print(arg)

@fun.register(int)
def _(arg, verbose=False):
    print(arg)

@fun.register(list)
def _(arg, verbose=False):
    for i, elem in enumerate(arg):
        print(i, elem)</code>
登录后复制

使用这种方法,您可以通过特定的实现来处理不同的参数类型,同时保持单个函数。

以上是Python 如何处理方法重载?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!