Eine vollständige Anleitung zum Überladen von Methoden in Python (mit Beispielen)
Veröffentlicht: 2022-04-23Überladen ist die Fähigkeit einer Funktion, Methode oder eines Operators, anders zu arbeiten, wenn Sie verschiedene Parameter an dieselbe übergeben. Methodenüberladung oder Funktionsüberladung in Python sind häufig verwendete Begriffe. Einer der Hauptvorteile des Überladens besteht darin, dass Sie eine Methode auf mehrere Arten verwenden können, was Ihnen hilft, Ihren Code sauberer zu halten und die Komplexität bei der Arbeit mit einem Team zu verringern.
Was ist Methodenüberladung?
In der objektorientierten Programmierung wird das Überladen von Methoden in Szenarien verwendet, in denen für ein bestimmtes Objekt eine bestimmte Methode je nach Projektanforderung auf mehr als eine Weise aufgerufen werden kann.
Beispiele für das Überladen von Methoden in Python werden später in diesem Artikel ausführlich besprochen.
Was ist Methodenüberschreibung?
Das Überschreiben von Methoden in Python ähnelt dem Überladen von Methoden, außer dass das Überschreiben von Methoden zwischen einer Unterklasse und einer Oberklasse erfolgt. Es hat die gleichen Parameter wie beim Aufruf der Methoden. Sie verhalten sich jedoch anders, da einige der Funktionen von der Oberklasse überschrieben werden.
Beispiel für Methodenüberschreibung
Klasse X:
def Methode1 (selbst):
print('Ich bin das erste Feature der Klasse X')
def Methode2 (selbst):
print('Ich bin das zweite Feature der Klasse X')
Klasse Y(X):
def Methode1 (selbst):
print('Ich bin das modifizierte erste Feature von Klasse X in Klasse Y')
def Methode3 (selbst):
print('Ich bin ein Merkmal der Klasse Y')
obj = Y()
obj.method1()
Ausgabe:
Ich bin das modifizierte erste Feature von Klasse X in Klasse Y
method1 wurde von Klasse Y überschrieben.
Lernen Sie Data Science-Kurse online bei upGrad
Methodenüberladung in Python
Das Problem mit dem Überladen von Methoden in Python ist, dass Python es standardmäßig nicht unterstützt. Es gibt jedoch Problemumgehungen, um dasselbe zu tun.
Das Problem
Betrachten wir den folgenden Code:
def add(a, b):
s = a + b
Druck(e)
def add(a, b, c):
s = a + b + c
Druck(e)
# add(8, 9) zeigt Fehler
add(8, 9, 2)
Auf den ersten Blick sieht der Code gut aus, aber wenn Sie versuchen, ihn mit zwei Argumenten auszuführen, zeigt Python Ihnen einen Fehler an, denn in Python, wenn Sie mehr als eine Methode mit demselben Namen, aber einer unterschiedlichen Anzahl von Argumenten haben, wird nur die letzte definierte Methode kann verwendet werden.
Es gibt zwei verschiedene Möglichkeiten, wie wir dieses Problem der Methodenüberladung in Python lösen können.
1: Die Verwendung gleicher Methoden unterscheidet sich je nach Datentyp der Argumente
Wir können ein Argument sehen, um den Datentyp zu kennen, zusammen mit *args, das es ermöglicht, eine variable Anzahl von Argumenten an eine Methode in Python zu übergeben. Wir können dann if-Anweisungen verwenden, um zu steuern, wie sich die Methode entsprechend der Eingabe verhält.
CODE:
def add(dt, *args):
if dt =='int':
s = 0
if dt =='str':
s = ”
für x in Argumenten:
s = s + x
Druck(e)
add('int', 11, 9)
add("str", "Hallo", "Wie geht es dir?")
Ausgabe:
20
Hallo, wie geht's dir?
Dies war die erste Problemumgehung, um das Überladen von Methoden in Python zu implementieren.
Entdecken Sie unsere beliebten Data Science-Kurse
Executive Post Graduate Program in Data Science vom IIITB | Professional Certificate Program in Data Science für die Entscheidungsfindung in Unternehmen | Master of Science in Data Science von der University of Arizona |
Advanced Certificate Program in Data Science vom IIITB | Professional Certificate Program in Data Science und Business Analytics von der University of Maryland | Alle Data Science-Kurse anzeigen |
2: Verwendung von Multiple Dispatch Decorator (effizienterer Weg)
Multiple Dispatch Decorator ist weniger eine Problemumgehung und funktioniert genau so, wie es soll. Sie können es mit pip3 installieren.
pip3 installiert mehrere Dispatches
CODE:
aus Mehrfachversand Importversand
@dispatch(int,int) # für 2 ganzzahlige Argumente
def add(n1,n2):
s = n1 + n2
Druck(e)
@dispatch(int,int,int) # für 3 ganzzahlige Argumente
def add(n1,n2,n3):
s = n1 + n2 + n3
Druck(e)
@dispatch(float,float,float) # für Float-Argumente
def add(n1,n2,n3):
s = n1 + n2 + n3
hinzufügen (5,2)
hinzufügen (6,1,4)
add(3.4,1.2,5.6)
Ausgabe:
7
11
10.2
Bei der Ausführung erstellt der Dispatcher ein neues Objekt, das verschiedene Implementierungen der Methode speichert, und entscheidet, welche Methode ausgewählt werden soll, abhängig vom Typ und der Anzahl der beim Aufrufen der Methode übergebenen Argumente. Auf diese Weise ist die Methode zum Überladen in Python effizienter.
Lesen Sie unsere beliebten Data Science-Artikel
Data Science Career Path: Ein umfassender Karriereleitfaden | Data Science Karrierewachstum: Die Zukunft der Arbeit ist da | Warum ist Data Science wichtig? 8 Wege, wie Data Science dem Unternehmen einen Mehrwert bringt |
Relevanz von Data Science für Manager | Der ultimative Data Science Spickzettel, den jeder Data Scientist haben sollte | Die 6 wichtigsten Gründe, warum Sie Data Scientist werden sollten |
Ein Tag im Leben von Data Scientists: Was machen sie? | Mythos gesprengt: Data Science braucht keine Codierung | Business Intelligence vs. Data Science: Was sind die Unterschiede? |
Schlussfolgerungen
Wenn Sie in den Bereich Data Science einsteigen möchten, ist Python ein guter erster Schritt. Um tiefer einzutauchen und das Thema weiter zu studieren, können Sie fortgeschrittene Online-Zertifizierungskurse wie das Executive Program in Data Science von IIIT-Bangalore in Zusammenarbeit mit upGrad besuchen . Dieses Programm deckt die wichtigen Aspekte des Fachs ab und bietet viele zusätzliche Vorteile wie Jobunterstützung, 1:1-Mentoring, Online-Support, Live-Vorträge und optionale Zusatzmodule für Enthusiasten, die sich weiterbilden möchten.
Was ist der Unterschied zwischen einer Funktion und einer Methode in Python?
In Python gibt es zwei Arten von Funktionen: eingebaute Funktionen und benutzerdefinierte Funktionen. print() und len() sind Beispiele für eingebaute Funktionen. Benutzerdefinierte Funktionen in Python sind Funktionen, die wir selbst definieren können, um eine bestimmte Aufgabe mehr als einmal in einem typischen Programm auszuführen. Methode ist genau wie eine Funktion, außer dass Methoden zu einer Klasse gehören und nur für ein Objekt aufgerufen werden können. (Syntax: obj.methode())
Wie wähle ich zwischen Python und R?
Python und R sind die beiden wichtigsten Sprachen, die für Data Science verwendet werden. Während die Verwendung von mehreren Faktoren abhängt, wie dem Unternehmen, das Sie anstreben, der Art des Projekts, den Kundenanforderungen usw., wenn Sie ein Anfänger in der Programmierung sind und in einer technischen Umgebung arbeiten, in der umfangreiche Anwendungen erstellt werden, Python ist eine gute Wahl. Wenn Sie andererseits bereits Programmiererfahrung haben und Datenanalyseaufgaben schnell ausführen und Ihre Daten mit schönen Grafiken visualisieren möchten, um statistisch eine bessere Entscheidung zu treffen, ist R der richtige Weg.
Wie lange dauert es, Data Science zu beherrschen?
Jeder hat sein eigenes Lerntempo. Als Anfänger ohne vorherige Programmiererfahrung benötigen Sie jedoch fast 6-7 Monate, um Ihre Grundlagen zu stärken. Posten Sie das, es hängt wieder davon ab, wie viel Sie üben und an welchen Projekten Sie arbeiten. Wenn Sie an einer Online-Zertifizierung teilnehmen, sollten Sie diese in etwa einem Jahr beherrschen.