[PYTHON] Mehrfachvererbung von Klassen

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()

Ausführungsergebnis von 1


talk
person run
fly

PersonCarRobot-Klasse Es erbt sowohl die Personenklasse als auch die Fahrzeugklasse. Damit Es gibt Methoden für beide Klassen.

Hier, Sowohl die Person-Klasse als auch die Car-Klasse haben eine Methode namens run.

in diesem Fall, Es ist Klasse PersonCarRobot (Person, Auto) Ein Bild, das zuerst die Person-Klasse erbt und das, was nicht von der Car-Klasse stammt. Daher wird die Ausführungsmethode der Car-Klasse nicht vererbt.

Wenn Sie es durch die Klasse PersonCarRobot (Auto, Person) ersetzen Erben Sie zuerst die Car-Klasse und erben Sie, was nicht von der Person-Klasse stammt. Die Ausführungsmethode der Person-Klasse wird nicht vererbt.

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()

Ausführungsergebnis von 2


talk
car run
fly

Recommended Posts

Mehrfachvererbung von Klassen
Mehrfachvererbung
Kopie mehrerer Listen
EP 26 Verwenden Sie Mehrfachvererbung nur für Mix-In-Dienstprogrammklassen
Summe mehrerer Numpy-Arrays (Summe)
Fangen Sie mehrere Arten von Ausnahmen ab
Optimale Platzierung mehrerer Bilder
Installieren Sie mehrere Versionen von Python
[ev3dev × Python] Steuerung mehrerer Motoren
[Hikari-Python] Kapitel 09-03 Klasse (Vererbung)
[Python] Was wird durch Mehrfachvererbung geerbt?
Installieren Sie mehrere Versionen von Polyphony mit venv
Vergleich von Klassenvererbung und Konstruktorbeschreibung
Verlassen Sie mehrere Schleifen gleichzeitig
Zusammenfassung der Module und Klassen in Python-TensorFlow2-
[Bash] Umleiten mehrerer Zeilen in mehrere Dateien