Héritage multiple de classes

1


class Person(object):
    def talk(self):
        print('talk')
    def run(self):
        print('person run')

class Car(object):
    def run(self):
        print('car run')

class PersonCarRobot(Person, Car):
    def fly(self):
        print('fly')

person_car_robot = PersonCarRobot()
person_car_robot.talk()
person_car_robot.run()
person_car_robot.fly()

Résultat d'exécution de 1


talk
person run
fly

PersonCarRobot Classe Il hérite à la fois de la classe Person et de la classe Car. Alors Il a des méthodes pour les deux classes.

ici, La classe Person et la classe Car ont toutes deux une méthode appelée run.

dans ce cas, C'est la classe PersonCarRobot (Person, Car) Une image qui hérite de la classe Person en premier et hérite de ce qui n'est pas de la classe Car. Par conséquent, la méthode d'exécution de la classe Car n'est pas héritée.

Si vous le remplacez par la classe PersonCarRobot (Car, Person) Héritez d'abord de la classe Car et héritez de ce qui n'est pas de la classe Person. La méthode d'exécution de la classe Person n'est pas héritée.

2


class Person(object):
    def talk(self):
        print('talk')
    def run(self):
        print('person run')

class Car(object):
    def run(self):
        print('car run')

class PersonCarRobot(Car, Person):
    def fly(self):
        print('fly')

person_car_robot = PersonCarRobot()
person_car_robot.talk()
person_car_robot.run()
person_car_robot.fly()

Résultat d'exécution de 2


talk
car run
fly

Recommended Posts

Héritage multiple de classes
Héritage multiple
Copie de plusieurs listes
EP 26 Utiliser l'héritage multiple uniquement pour les classes utilitaires mixtes
Somme de plusieurs tableaux numpy (somme)
Attrapez plusieurs types d'exceptions
Placement optimal de plusieurs images
Installer plusieurs versions de Python
[ev3dev × Python] Contrôle de plusieurs moteurs
[Hikari-Python] Chapitre 09-03 Classe (Héritage)
[Python] Qu'est-ce qui est hérité par l'héritage multiple?
Installer plusieurs versions de Polyphony à l'aide de venv
Comparaison de l'héritage de classe et de la description du constructeur
Sortez de plusieurs boucles à la fois
Résumé des modules et des classes dans Python-TensorFlow2-
[Bash] Redirection de plusieurs lignes vers plusieurs fichiers