In Python unterscheidet sich die Methodenüberladung vom Methodenüberschreiben. Um Methoden zu überladen, können Sie eine einzelne Funktion mit Standardargumentwerten verwenden.
<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>
Allerdings wurden in Python 3.4 generische Single-Dispatch-Funktionen eingeführt, um einen umfassenderen Mechanismus zum Überladen von Methoden bereitzustellen.
<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>
Mit diesem Ansatz können Sie verschiedene Argumenttypen mit spezifischen Implementierungen verarbeiten und dabei eine einzige Funktion beibehalten.
Das obige ist der detaillierte Inhalt vonWie geht Python mit Methodenüberladung um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!