在 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中文网其他相关文章!