Der folgende Editor bietet Ihnen einen allgemeinen Vortrag über Entenklassen und Polymorphismus in Python. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf
1. Was ist Polymorphismus?
<1> <2>Ermöglicht verschiedenen Objekten, flexibel auf dieselbe Nachricht zu reagieren
<3>Ein verwendetes Objekt auf gemeinsame Weise behandeln
<4>Nicht dynamische Sprachen müssen die Implementierung durch Vererbung und Schnittstelle durchlaufen
2. Polymorphismus in Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <1>通过继承实现多态(子类可以作为父类来使用)
<2>子类通过重载父类的方法实现多态
class Animal:
def move(self):
print ('animal is moving....')
class Dog(Animal):
pass
def move(obj):
obj.move()
>>>move(Animal())
>>>animal is moving....
>>>move(Dog())
>>>animal is moving....
class Fish(Animal):
def move(self):
print ('fish is moving....')
>>>move(Fish())
>>>fish is moving....
|
Nach dem Login kopieren
3. Dynamische Sprache und Ententypisierung
<1> Der Typ der Variablenbindung ist undefiniert
<2> Funktionen und Methoden können jeden Typ Parameter empfangen
<3> ; Beim Aufruf der Methode wird der angegebene Parametertyp nicht überprüft
<4> Ob der Aufruf erfolgreich ist, wird durch die Methoden und Attribute mit Parametern bestimmt, und der Aufruf ist nicht erfolgreich wird ausgelöst
<5> Keine Notwendigkeit, die Schnittstelle zu implementieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | class P:
def init(self, x, y):
self.x = x
self.y = y
def add(self, oth):
return P(self.x+oth.x, self.y+oth.y)
def info(self):
print (self.x, self.y)
class D(P):
def init(self, x, y, z):
super.init(x, y)
self.z = z
def add(self, oth):
return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)
def info(self):
print (self.x, self.y, self.z)
class F:
def init(self, x, y, z):
self.x = x
self.y = y
self.z = z
def add(self, oth):
return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)
def info(self):
print (self.x, self.y, self.z)
def add(a, b):
return a + b
if name == 'main':
add(p(1, 2), p(3, 4).info())
add(D(1, 2, 3), D(1, 2, 3).info())
add(F(2, 3, 4), D(2, 3, 4).info())
|
Nach dem Login kopieren
4. Die Vorteile von Polymorphismus
<1> Ermöglicht offene Erweiterung und modifiziertes Schließen
<2>
Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele für Entenklassen und Polymorphismus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!