Methodenüberladung in Python

Rana Hasnain Khan 15 Februar 2024
  1. Methodenüberladung in Python
  2. Vorteile der Methodenüberladung in Python
  3. Methodenüberladung in Python mit unterschiedlichen Datentypen in derselben Methode
  4. Methodenüberladung in Python mit mehreren Dispatch-Decorators
Methodenüberladung in Python

Dieses Tutorial stellt das Überladen von Methoden in Python und seine Vorteile anhand von Beispielen vor.

Methodenüberladung in Python

Das Überladen von Methoden spielt in Python eine entscheidende Rolle. Methoden akzeptieren manchmal null Parameter und manchmal einen oder mehrere Parameter.

Wenn wir dieselbe Methode auf unterschiedliche Weise aufrufen, wird dies als Methodenüberladung bezeichnet. Python unterstützt die Überladungsmethode standardmäßig nicht wie andere Sprachen.

Zwei oder mehr Methoden können in Python nicht die gleichen Namen haben, da das Überladen von Methoden es uns ermöglicht, denselben Operator mit unterschiedlichen Bedeutungen zu erstellen. Lassen Sie uns das Überladen von Methoden im Detail besprechen.

Wenn zwei oder mehr Methoden in derselben Klasse unterschiedliche Parameter annehmen, haben sie möglicherweise denselben Namen. Die Eigenschaft des Überladens von Methoden ermöglicht es demselben Operator, mehrere Interpretationen zu haben.

Überladen bezieht sich auf eine Methode oder einen Operator, der viele Funktionen unter demselben Namen ausführen kann.

Lassen Sie uns nun das Überladen von Methoden anhand eines einfachen Beispiels besprechen, in dem wir zwei verschiedene Dinge mit demselben Parameter ausführen.

Beispiel:

# python
class methodOverload:
    def MethodHi(self, user=None):
        if user is not None:
            print("Hello " + user)
        else:
            print("Hello")


MethodObj = methodOverload()
MethodObj.MethodHi()
MethodObj.MethodHi("Hasnain")

Ausgang:

Methodenüberladung in Python Einfaches Beispiel

Wie Sie in diesem Beispiel sehen können, haben wir eine Klasse methodOverload erstellt, in der wir die Methode MethodHi definiert haben, die den Benutzer mit und ohne Namen begrüßt. Nach dieser Klasse haben wir eine Objektinstanz mit der Klasse erstellt und sie mit und ohne Parameter aufgerufen.

Diese Art des Ladens von Funktionen mit unterschiedlichen Parametern wird als Methodenüberladung bezeichnet. Lassen Sie uns nun die Vorteile der Verwendung von Methodenüberladungen in unseren Python-Programmen diskutieren.

Vorteile der Methodenüberladung in Python

Das Überladen von Methoden in Python-Programmen hat viele Vorteile. Einige von ihnen sind wie folgt:

  1. Das Überladen von Methoden reduziert die Komplexität, Funktion oder Methode des Programms. Es macht es dem Benutzer einfach, es ohne Parameter, mit einem einzigen Parameter oder mit mehreren Parametern zu verwenden.
  2. Das Überladen von Methoden verbessert die Codequalität, macht sie effizient und deckt die meisten Anwendungsfälle ab, um unsere Anwendung erfolgreich zu machen.
  3. Das Überladen von Methoden erhöht die Wiederverwendbarkeit des Programms und macht es leicht zugänglich.

Lassen Sie uns nun einige Beispiele für das Überladen von Methoden durchgehen, bei denen wir verschiedene Aspekte des Überladens von Methoden behandeln werden. Wenn wir dieselben Funktionen erstellen und sie unterschiedlich bearbeiten möchten, können wir Methodenüberladung verwenden.

Methodenüberladung in Python mit unterschiedlichen Datentypen in derselben Methode

In unserem ersten Beispiel machen wir eine Klasse addition und verwenden verschiedene Datentypen, um zwei Aufgaben mit derselben Methode auszuführen. Das Programm prüft, ob der Datentyp eine Ganzzahl ist, dann ist die Antwort die Addition von Zahlen.

Wenn der Datentyp ein String ist, ist die Antwort die Verkettung von Strings. Wir verwenden eine for-Schleife, die die Argumente durchläuft und alle überprüft.

Wenn es sich um ganze Zahlen handelt, werden sie addiert. Und wenn es sich um Strings handelt, werden sie wie unten gezeigt kombiniert.

Beispiel:

# python
def addition(datatype, *args):
    if datatype == "int":
        result = 0
        for x in args:
            result = result + x
        print(result)
    if datatype == "str":
        result = []
        for x in args:
            result.append(x)
        print(result[0], result[1])


addition("int", 7, 11)

addition("str", "Hello", "python")

Ausgang:

Methodenüberladung in Python Beispiel für unterschiedliche Datentypen

Als wir im obigen Beispiel Integer als Datentyp mit zu addierenden Zahlen bereitgestellt haben, haben wir die Addition von Zahlen erhalten. Aber als wir string als Datentyp angegeben und Strings übergeben haben, hat dieselbe Methode die Strings verkettet und das Ergebnis angezeigt.

Methodenüberladung in Python mit mehreren Dispatch-Decorators

Lassen Sie uns nun ein weiteres Beispiel durchgehen, das etwas knifflig sein wird. In diesem Beispiel verwenden wir die effiziente Methode zum Überladen von Methoden.

Wir müssen die Multiple Dispatch Decorators mit dem folgenden Befehl installieren.

pip install multipledispatch

Nach der Installation werden wir es in unser Programm importieren. Es versendet drei Integer und drei Floats und zeigt die Ergebnisse unten an.

Beispiel:

# python
from multipledispatch import dispatch


@dispatch(int, int, int)
def multiply(oneInt, twoInt, threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans)


@dispatch(float, float, float)
def multiply(oneInt, twoInt, threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans)


multiply(3, 7, 8)
multiply(3.6, 5.9, 9.9)

Ausgang:

Methodenüberladung in Python mit Multiple Dispatch

Wie Sie im obigen Beispiel sehen können, können wir mehrere Dispatch-Decorators verwenden, um verschiedene Datentypen zu senden und Ergebnisse daraus zu erhalten, indem wir für alle Datentypen, die wir verwenden möchten, dieselbe Methode verwenden.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn