Maison > Article > développement back-end > Partagez des exemples de classes de canard et de polymorphisme en python
L'éditeur suivant vous présentera une discussion banale sur les classes de canard et le polymorphisme en Python. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil
1. Qu'est-ce que le polymorphisme
f35d6e602fd7d0f0edfa6f7d103c1b57 2cc198a1d5eb0d3eb508d858c9f5cbdbPermet à différents objets de réagir de manière flexible au même message
5bdf4c78156c7953567bb5a0aef2fc53Traiter un objet utilisé de manière commune
23889872c2e8594e0f446a471a78ec4cLes langages non dynamiques doivent passer Implémentation par héritage et interface
2. Polymorphisme en python
<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....
3. Langage dynamique et typage canard
f35d6e602fd7d0f0edfa6f7d103c1b57 Le type de liaison de variable n'est pas définiclass 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())
f35d6e602fd7d0f0edfa6f7d103c1b57 Permet l'expansion ouverte et la fermeture modifiée2cc198a1d5eb0d3eb508d858c9f5cbdb Rend les programmes Python plus flexibles
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!