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