Polymorphismus in Python (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen den Polymorphismus, verschiedene Arten des Polymorphismus und wie wir sie in Python implementieren können.

Was ist Polymorphismus?

Die wörtliche Bedeutung des Polymorphismus ist die Bedingung des Auftretens in verschiedenen Formen.

Polymorphismus ist ein sehr wichtiges Konzept in der Programmierung. Es bezieht sich auf die Verwendung einer einzelnen Typentität (Methode, Operator oder Objekt), um verschiedene Typen in verschiedenen Szenarien darzustellen.

Nehmen wir ein Beispiel:

Beispiel 1: Polymorphismus in Additionsoperator

Wir wissen, dass der +Operator in Python-Programmen häufig verwendet wird. Es gibt jedoch keine einzige Verwendung.

Bei ganzzahligen Datentypen wird der +Operator verwendet, um eine arithmetische Additionsoperation durchzuführen.

 num1 = 1 num2 = 2 print(num1+num2) 

Daher gibt das obige Programm 3 aus.

In ähnlicher Weise wird für Zeichenfolgendatentypen der +Operator verwendet, um eine Verkettung durchzuführen.

 str1 = "Python" str2 = "Programming" print(str1+" "+str2) 

Infolgedessen gibt das obige Programm die Python-Programmierung aus.

Hier können wir sehen, dass ein einzelner Operator +verwendet wurde, um verschiedene Operationen für verschiedene Datentypen auszuführen. Dies ist eines der einfachsten Vorkommen von Polymorphismus in Python.

Funktionspolymorphismus in Python

In Python gibt es einige Funktionen, die für die Ausführung mit mehreren Datentypen kompatibel sind.

Eine solche Funktion ist die len()Funktion. Es kann mit vielen Datentypen in Python ausgeführt werden. Schauen wir uns einige Anwendungsbeispiele der Funktion an.

Beispiel 2: Polymorphe len () -Funktion

 print(len("Programiz")) print(len(("Python", "Java", "C"))) print(len(("Name": "John", "Address": "Nepal"))) 

Ausgabe

 9 3 2 

Hier sehen wir, dass viele Datentypen wie Zeichenfolge, Liste, Tupel, Menge und Wörterbuch mit der len()Funktion arbeiten können. Wir können jedoch feststellen, dass bestimmte Informationen zu bestimmten Datentypen zurückgegeben werden.

Polymorphismus in len () funktioniert in Python

Klassenpolymorphismus in Python

Polymorphismus ist ein sehr wichtiges Konzept in der objektorientierten Programmierung.

Weitere Informationen zu OOP in Python finden Sie unter: Python Object-Oriented Programming

Wir können das Konzept des Polymorphismus beim Erstellen von Klassenmethoden verwenden, da Python es verschiedenen Klassen ermöglicht, Methoden mit demselben Namen zu haben.

Wir können den Aufruf dieser Methoden später verallgemeinern, indem wir das Objekt, mit dem wir arbeiten, ignorieren. Schauen wir uns ein Beispiel an:

Beispiel 3: Polymorphismus in Klassenmethoden

 class Cat: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a cat. My name is (self.name). I am (self.age) years old.") def make_sound(self): print("Meow") class Dog: def __init__(self, name, age): self.name = name self.age = age def info(self): print(f"I am a dog. My name is (self.name). I am (self.age) years old.") def make_sound(self): print("Bark") cat1 = Cat("Kitty", 2.5) dog1 = Dog("Fluffy", 4) for animal in (cat1, dog1): animal.make_sound() animal.info() animal.make_sound() 

Ausgabe

Miau, ich bin eine Katze. Ich heiße Kitty. Ich bin 2,5 Jahre alt. Meow Bark Ich bin ein Hund. Ich heiße Fluffy. Ich bin 4 Jahre alt. Borke

Hier haben wir zwei Klassen erstellt Catund Dog. Sie haben eine ähnliche Struktur und die gleichen Methodennamen info()und make_sound().

Beachten Sie jedoch, dass wir keine gemeinsame Oberklasse erstellt oder die Klassen in irgendeiner Weise miteinander verknüpft haben. Selbst dann können wir diese beiden verschiedenen Objekte in ein Tupel packen und es mit einer gemeinsamen Tiervariablen durchlaufen. Es ist aufgrund von Polymorphismus möglich.

Polymorphismus und Vererbung

Wie in anderen Programmiersprachen erben auch die untergeordneten Klassen in Python Methoden und Attribute von der übergeordneten Klasse. Wir können bestimmte Methoden und Attribute speziell für die untergeordnete Klasse neu definieren, die als Methodenüberschreibung bezeichnet wird .

Durch Polymorphismus können wir auf diese überschriebenen Methoden und Attribute zugreifen, die denselben Namen wie die übergeordnete Klasse haben.

Schauen wir uns ein Beispiel an:

Beispiel 4: Methodenüberschreibung

 from math import pi class Shape: def __init__(self, name): self.name = name def area(self): pass def fact(self): return "I am a two-dimensional shape." def __str__(self): return self.name class Square(Shape): def __init__(self, length): super().__init__("Square") self.length = length def area(self): return self.length**2 def fact(self): return "Squares have each angle equal to 90 degrees." class Circle(Shape): def __init__(self, radius): super().__init__("Circle") self.radius = radius def area(self): return pi*self.radius**2 a = Square(4) b = Circle(7) print(b) print(b.fact()) print(a.fact()) print(b.area()) 

Ausgabe

Kreis Ich bin eine zweidimensionale Form. Quadrate haben jeweils einen Winkel von 90 Grad. 153.93804002589985

Hier können wir sehen, dass die Methoden wie __str__(), die in den untergeordneten Klassen nicht überschrieben wurden, von der übergeordneten Klasse verwendet werden.

Aufgrund des Polymorphismus erkennt der Python-Interpreter automatisch, dass die fact()Methode für das Objekt a(Square-Klasse) überschrieben wird. Es wird also die in der untergeordneten Klasse definierte verwendet.

Da die fact()Methode für Objekt b nicht überschrieben wird, wird sie von der Parent Shape-Klasse verwendet.

Polymorphismus in übergeordneten und untergeordneten Klassen in Python

Hinweis : Das Überladen von Methoden , eine Möglichkeit, mehrere Methoden mit demselben Namen, aber unterschiedlichen Argumenten zu erstellen, ist in Python nicht möglich.

Interessante Beiträge...