Polymorphismus in Python mit BEISPIELEN

โšก Intelligente Zusammenfassung

Polymorphismus in Python Dadurch kann eine einzige Schnittstelle mit Objekten unterschiedlicher Typen arbeiten, sodass sich dieselbe Methode oder derselbe Operator je nach Objekttyp unterschiedlich verhรคlt. Dies รคuรŸert sich durch Operatorรผberladung, integrierte Funktionen, benutzerdefinierte Methoden und Vererbung. Python Programme.

  • ๐Ÿ”˜ Definition: Polymorphismus bedeutet โ€žviele Formenโ€œ und ermรถglicht es einer Schnittstelle, auf verschiedene Datentypen oder Klassen zuzugreifen.
  • โ˜‘๏ธ OperaTor-รœberlastung: Der Operator + addiert Zahlen, verkettet aber gleichzeitig Zeichenketten, was den Polymorphismus der Operatoren verdeutlicht.
  • โœ… Integrierte Funktionen: Funktionen wie len() funktionieren gleichermaรŸen mit Zeichenketten, Listen und Wรถrterbรผchern.
  • ๐Ÿงช Benutzerdefinierte Methoden: Klassen kรถnnen Methodennamen wie area() und perimeter() fรผr verschiedene Formen gemeinsam nutzen.
  • ๏ธ Erbe: Durch das รœberschreiben von Methoden kann eine Kindklasse eine Methode ihrer Elternklasse zur Laufzeit neu definieren.
  • ๐Ÿค– KI-Relevanz: Machine-Learning-Bibliotheken verwenden gemeinsam genutzte Schnittstellen wie fit() und forward() modellรผbergreifend.

Polymorphismus in Python

Was ist Polymorphismus?

Polymorphismus kann als ein Zustand definiert werden, der in vielen verschiedenen Formen auftritt. Es ist ein Konzept in Python Programmierung, bei der ein Objekt definiert ist in Python kann auf verschiedene Arten verwendet werden. Es ermรถglicht dem Programmierer, mehrere Methoden in einer abgeleiteten Klasse zu definieren, und es hat den gleichen Namen wie in der รผbergeordneten Klasse. Solche Szenarien unterstรผtzen die Methodenรผberladung in Python.

Polymorphismus in Operatoren

Ein Operator in Python hilft bei der Durchfรผhrung mathematischer und verschiedener anderer Programmieraufgaben. Beispielsweise hilft der Operator '+' bei der Addition zwischen zwei ganzzahligen Typen in Python, und auf die gleiche Weise hilft derselbe Operator beim Verketten von Zeichenketten in Python Programmierung.

Nehmen wir ein Beispiel fรผr + (plus) Betreiber in Python um eine Anwendung des Polymorphismus anzuzeigen in Python wie unten dargestellt:

Python Code:

p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))

Ausgang:

the sum of two numbers 132
the data type of result is <class 'int'>

The sum of the two numbers 86.5
the data type of result is <class 'float'>

The concatenated string is Guru99!
The data type of two strings <class 'str'>

Das obige Beispiel kann auch als Beispiel fรผr eine Operatorรผberladung angesehen werden.

Polymorphismus in benutzerdefinierten Methoden

Eine benutzerdefinierte Methode im Python Programmiersprache sind Methoden, die der Benutzer erstellt und mit dem Schlรผsselwort def mit dem Funktionsnamen deklariert wird.

Polymorphismus in der Python Die Programmiersprache wird durch รœberladen und รœberschreiben von Methoden erreicht. Python definiert Methoden mit dem Schlรผsselwort โ€ždefโ€œ und mit demselben Namen sowohl in der untergeordneten als auch in der รผbergeordneten Klasse.

Nehmen wir das folgende Beispiel: โ€“

Python Code:

from math
import pi
class square:
    def __init__(self, length):
    self.l = length
def perimeter(self):
    return 4 * (self.l)
def area(self):
    return self.l * self.l
class Circle:
    def __init__(self, radius):
    self.r = radius
def perimeter(self):
    return 2 * pi * self.r
def area(self):
    return pi * self.r * * 2
# Initialize the classes
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())

Ausgang:

Perimeter computed for square:  40
Area computed for square:  100
Perimeter computed for Circle:  25.132741228718345
Area computed for Circle:  50.26548245743669

Im obigen Code gibt es zwei benutzerdefinierte Methoden, Umfang und Flรคche, die in den Klassen Kreis und Quadrat definiert sind.

Wie oben gezeigt, rufen sowohl die Kreisklasse als auch die Quadratklasse denselben Methodennamen auf, der die Eigenschaften des Polymorphismus anzeigt, um die erforderliche Ausgabe zu liefern.

Polymorphismus in Funktionen

Die integrierten Funktionen in Python sind so konzipiert und kompatibel, dass sie mehrere Datentypen ausfรผhren kรถnnen. Pythonlen() ist eine der wichtigsten integrierten Funktionen.

Es funktioniert mit verschiedenen Datentypen: Listen, Tupeln, Zeichenketten und Wรถrterbรผchern. Die Funktion len() liefert eindeutige Informationen, die mit diesen vielen Datentypen kompatibel sind.

Die folgende Abbildung zeigt, wie Polymorphismus angewendet werden kann in Python in Bezug auf eingebaute Funktionen: โ€“

Polymorphismus in Funktionen

Das folgende Programm hilft bei der Veranschaulichung der Anwendung von Polymorphismus in Python: -

Python Code:

print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))

Ausgang:

The length of string Guru99 is 6
The length of the list is 3
The length of the dictionary is 2

Polymorphismus in Funktionen

Im obigen Beispiel wird die Funktion len() verwendet. Python fรผhrt Polymorphismus fรผr Zeichenfolgen-, Listen- und Wรถrterbuchdatentypen durch.

Polymorphismus und Vererbung

Vererbung in Python kann als das Programmierkonzept definiert werden, bei dem eine definierte Kindklasse Eigenschaften von einer anderen Basisklasse erbt, die in Python.

Es gibt zwei Schlรผssel Python Konzepte, die als Methodenรผberschreibung und Methodenรผberladung bezeichnet werden.

  • Bei der Methodenรผberladung Python bietet die Mรถglichkeit, Methoden mit demselben Namen zu erstellen, um in einem bestimmten Codeabschnitt verschiedene Funktionen auszufรผhren. Es ermรถglicht das รœberladen von Methoden und deren Verwendung, um verschiedene Aufgaben einfacher auszufรผhren.
  • Bei der Methodenรผberschreibung Python รผberschreibt den Wert, der in รผbergeordneten und untergeordneten Klassen einen รคhnlichen Namen hat.

Betrachten wir das folgende Beispiel fรผr Polymorphismus und Vererbung: โ€“

Python Code:

class baseclass:
    def __init__(self, name):
    self.name = name
def area1(self):
    pass
def __str__(self):
    return self.name
class rectangle(baseclass):
    def __init__(self, length, breadth):
    super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
    return self.length * self.breadth
class triangle(baseclass):
    def __init__(self, height, base):
    super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
    return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())

Ausgang:

The shape is: a triangle
The area of a shape is 2464.0

The shape is: a rectangle
The area of a shape is 7200

Im obigen Code haben die Methoden denselben Namen wie die Methode โ€žinitโ€œ und die Methode โ€žarea1โ€œ. Die Objekte der Klassen โ€žQuadratโ€œ und โ€žRechteckโ€œ werden dann verwendet, um die beiden Methoden aufzurufen, um unterschiedliche Aufgaben auszufรผhren und die Ausgabe der Flรคche von Quadrat und Rechteck bereitzustellen.

Polymorphismus mit den Klassenmethoden

Das Python Programmierung ermรถglicht es Programmierern, Polymorphismus und Methodenรผberladung mit Klassenmethoden zu erreichen. Die verschiedenen Klassen in Python kรถnnen Methoden haben, die im gleichen Namen deklariert sind, รผber die Python Code.

In Pythonkรถnnen zwei verschiedene Klassen definiert werden. Eine wรคre die untergeordnete Klasse und sie leitet Attribute von einer anderen definierten Klasse ab, die als รผbergeordnete Klasse bezeichnet wird.

Das folgende Beispiel veranschaulicht das Konzept des Polymorphismus mit Klassenmethoden: โ€“

Python Code:

class amazon:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
    product1.info()

Ausgang:

This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees.
This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.

Im obigen Code verwenden zwei verschiedene Klassen namens Flipkart und Amazon die gleichen Methodennamen info und init, um entsprechende Preisangaben fรผr das Produkt bereitzustellen und das Konzept des Polymorphismus in weiter zu veranschaulichen Python.

Unterschied zwischen Methodenรผberladung und Polymorphismus zur Kompilierungszeit

Beim Polymorphismus zur Kompilierungszeit muss der Compiler des Python Programm lรถst den Aufruf auf. Polymorphismus zur Kompilierungszeit wird durch Methodenรผberladung erreicht.

Das Python Der Compiler lรถst die Aufrufe wรคhrend der Laufzeit nicht auf Polymorphismus auf. Es wird auch als Methodenรผberschreibung klassifiziert, bei der dieselben Methoden รคhnliche Signaturen oder Eigenschaften aufweisen, aber Teil unterschiedlicher Klassen sind.

Hรคufig gestellte Fragen

Enten-Typing Was Python Beurteile ein Objekt anhand der von ihm bereitgestellten Methoden und nicht anhand seines Klassentyps. Besitzt ein Objekt die benรถtigte Methode, funktioniert es, getreu dem Motto: โ€žWenn es wie eine Ente watschelt und wie eine Ente quakt, dann ist es eine Ente.โ€œ

Nicht im herkรถmmlichen Sinne. Wenn zwei Methoden denselben Namen tragen, gilt die zuletzt definierte Methode. Python Stattdessen wird die รœberladung mithilfe von Standardargumenten, *args variabler Lรคnge oder dem functools.singledispatch-Dekorator simuliert, um verschiedene Argumenttypen innerhalb einer einzelnen Funktion zu handhaben.

AbstracDie Basisklassen des Moduls abc deklarieren Methoden, die jede Unterklasse implementieren muss. Sie erzwingen eine gemeinsame Schnittstelle, sodass nicht verwandte Unterklassen polymorph verwendet werden kรถnnen. Python garantiert, dass jede einzelne die erforderlichen Methoden bereitstellt.

Polymorphismus verbessert die Wiederverwendbarkeit, Flexibilitรคt und Skalierbarkeit von Code. Eine Funktion oder Schnittstelle kann viele Objekttypen verarbeiten, was Duplikate reduziert, die Wartung vereinfacht und es ermรถglicht, neue Klassen hinzuzufรผgen, ohne den bereits vorhandenen Code neu schreiben zu mรผssen.

Ja. Durch Enten-TypingUnabhรคngige Klassen, die dieselbe Methode implementieren, kรถnnen ohne gemeinsame รผbergeordnete Klasse austauschbar verwendet werden. OperaTor-รœberladung und eingebaute Funktionen wie len() ermรถglichen ebenfalls Polymorphismus ohne Vererbung.

Polymorphismus tritt auf, wenn eine Funktion Zeichenketten, Listen oder benutzerdefinierte Objekte verarbeitet, in Datenbanktreibern, die eine einheitliche API fรผr verschiedene Engines bereitstellen, und in GUI-Toolkits, in denen viele Widgets draw()- oder update()-Methoden gemeinsam nutzen, die รผber eine einzige Schnittstelle aufgerufen werden.

KI-Frameworks basieren auf Polymorphismus. In PyTorch, jedes Modell unterklassen von nn.Module und รผberschreibt forward(); in scikit-learn teilen sich Schรคtzer die fit()- und predict()-Methoden, sodass verschiedene Algorithmen รผber eine konsistente, austauschbare Schnittstelle laufen.

Ja. GitHub Copilot und agentenbasierte KI-Assistenten generieren entenartige Funktionen und schlagen Abs vor.tract Basisklassen und refaktorieren wiederholte Methoden anhand einer kurzen Vorgabe in polymorphe Designs. Revรœberprรผfen Sie die Ausgabe, um sicherzustellen, dass die Logik und die Schnittstellen korrekt sind.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: