Einführung in das Python-Überladen

Überladen bedeutet, dass mehrere Entitäten (Methoden, Operatoren usw.) denselben Namen haben, sich jedoch durch ihre Attribute unterscheiden. Der Unterschied in den Attributen kann auf einen Unterschied in der Anzahl der Attribute oder auf den Unterschied in der Art der Attribute zurückzuführen sein. Mit anderen Worten, aus der Sicht der Entität (Methoden, Operatoren usw.) kann sie als die Fähigkeit einer Entität entworfen oder erklärt werden, sich je nach den ihr zugeführten Parametern unterschiedlich zu verhalten. In Python wie in den meisten anderen höheren Programmiersprachen kann die Python-Überladung auf zwei Arten oder in zwei Instanzen erreicht werden:

  • Überladen von Funktionen oder Methoden (Function Overloading).
  • Überladen von Bedienern (Operator Overloading).

Funktionsüberladung in Python

Das Überladen von Methoden ist in Python kein angewandtes Konzept, kann aber durch verschiedene Techniken erreicht werden. Zunächst kann das Konzept der Methodenüberladung in zwei verschiedene Konzepte eingeteilt werden:

  • Überladen benutzerdefinierter Funktionen.
  • Überladen von Standardfunktionen.

1. Überladen von benutzerdefinierten Funktionen

Eine benutzerdefinierte Überladung von Funktionen kann in Python erreicht werden, indem ein Parameter oder ein Argumentwert auf none gesetzt wird. Wenn also ein Argument als none festgelegt ist, reagiert die Funktion auf eine Weise, wenn für dieses Argument kein Wert übergeben wird, und auf eine andere Weise, wenn für dasselbe Argument kein Wert übergeben wird.

Beispiel:

#!/usr/bin/env python
class Overloading_test:
def overloading_function(self, argument1 = 0, argument2 = 0 ):
if argument1 is not None or argument2 is not None:
print('Method Overloading parameter count :', (int( argument1) + int(argument2)))
else:
print( ' Method Overloading without parameters ' )
# Create instance
object1 = Overloading_test()
# Call the method with no arguments
object1.overloading_function()
# Call the method with 1 argument
object1.overloading_function(1)
# Call the method with 2 argument
object1.overloading_function(1, 1)

Ausgabe:

2. Überladen von Standard- oder vordefinierten Funktionen

Das Überladen von integrierten Funktionen umfasst das Definieren der vordefinierten Funktion, von der erwartet wird, dass sie in der Python-Klasse überladen wird, als spezielle Funktion. Wenn die vordefinierte Funktion in der Python-Klasse als Sonderfunktion deklariert ist, verwendet der Interpreter diese Sonderfunktion als Deklaration für den vordefinierten Aufruf. Das folgende Beispiel erläutert diesen Vorgang genau.

Beispiel:

Betrachten wir die len () -Funktion, die für die Bestimmung der Länge eines Elements in diesem Beispiel verwendet wird. Das folgende Beispiel zeigt die Standardverwendung der Längenfunktion, ohne eine Überladung zu implizieren, und gibt die entsprechenden Auswirkungen an.

# Using len() function without method overloading
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
print(' Total count of Alphabets in list1 : ', len(Lower_Case))
print(' Total count of Alphabets in list2 : ', len(Upper_Case))

Ausgabe:

Verwenden wir nun die Methodenüberladung für die len () - Funktion im selben Code-Snippet

class overloading:
def __init__(self, argument1, argument2):
self.argument1 = argument1
self.argument2 = argument2
def __len__(self):
return argument1+argument2
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
argument1 = len(Lower_Case)
argument2 = len(Upper_Case)
# Using len() function without method overloading
Object1 = overloading(argument1, argument2)
print('Overall length of both the lists : ', len(Object1))

Ausgabe:

Wir können deutlich feststellen, dass anstelle der üblichen integrierten Längenfunktion die überladene Sonderfunktion __len __ () verwendet wird, mit der die Ausgabe die summierte Länge beider Listen anstelle ihrer individuellen Länge ausgibt.

Operatorüberladung in Python

Dies beinhaltet eine erweiterte Interpretation eines Operators mehr als seinen ursprünglichen Zweck. Das gebräuchlichste Beispiel ist der Additionsoperator '+', mit dem gewöhnliche Additionen und auch das Verbinden zweier verschiedener Zeichenfolgen durchgeführt werden können.

Beispiel:

# add two numbers
print(1 + 2)
# concatenate two strings
print("Hello"+"World")

Ausgabe:

Vorteile von Python Overloading

  • Erhöht die Wiederverwendbarkeit von Code.
  • Erhöht die Klarheit des Codes.
  • Die Komplexität des Codes wird erheblich reduziert.

Fazit

In vielen höheren Programmiersprachen spielt das Überladen eine entscheidende Rolle. Im Fall von Python spielen sie eine wichtige Rolle bei der Vermeidung der wiederholten Verwendung von Code, auch wenn sie nicht direkt impliziert werden.

Empfohlene Artikel

Dies ist eine Anleitung zum Überladen von Python. Hier diskutieren wir die benutzerdefinierten und vordefinierten Funktionen sowie deren Bediener und Vorteile. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Python-Variablen (Top 4-Typen)
  2. Überladen vs Überschreiben mit Beispielen
  3. Python-Dateivorgänge
  4. Python-Editoren (Top 6-Editoren)
  5. Beispiele für integrierte Python-Funktionen