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.

Inhaltsverzeichnis

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

drucken

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.