Comprendre le typage du canard Python

”If it walks like a duck and quacks like a duck, it must be a duck”

Non limité à Python, la programmation a le concept de polymorphisme. C'est l'un des concepts de la programmation orientée objet, appelé polymorphisme et diversité en japonais.

Vous pouvez utiliser des méthodes portant le même nom, même si les classes sont de types différents, et vous pouvez basculer entre les mêmes opérations sur différents objets.

Un tel code s'appelle le typage du canard.


class Animal(object):
    def run(self):
        print('Animal is running...')
class Dog(Animal):
    def run(self):
        print('Dog is running...')
class Cat(Animal):

    def run(self):
        print('Cat is running...')
class people():           #Veuillez noter qu'il ne s'agit pas d'une sous-classe d'Amimal
    def run(self):
        print("people is running...(do not extends Animal)")
def run_twice(animal):
    animal.run()
    animal.run()
    
run_twice(Cat())
run_twice(Animal())
run_twice(people())   #Il peut être exécuté sans aucun problème.

Cat is running... Cat is running... Animal is running... Animal is running... people is running...(do not extends Animal) people is running...(do not extends Animal)

Recommended Posts

Comprendre le typage du canard Python
ABC pour les classes abstraites Python et la saisie de canard