Lassen Sie uns über die Mehrfachvererbung sprechen, die Sie jetzt in Python ausführen können. Denken Sie daran, dass wir
unseren Benutzerassistenten und Archer Classis haben.
Wir versuchen gerade, dieses Spiel zu entwickeln.
Lassen Sie uns einen Teil dieses Codes bereinigen.
Wir werden die init-Funktion nicht mehr brauchen.
Wir haben hier nur Benutzer.
Wir haben einen Assistenten, der vom Benutzer erbt, und auch Archer, der vom Benutzer erbt.
Aber was passiert, wenn wir einen neuen Charakter erstellen wollen?
Und dieser Charakter wird eine Klasse genannt, sagen wir.
Sagen wir, es heißt Hybrid Bjorg, wir sind ein Name, ich weiß, aber hier ist die Sache.
Hybrid Borg ist eine besondere Art von Charakter, weil er die Kräfte hat, die Zauberer haben, nämlich Angriff.
Es hat die Kraft, die Bogenschützen haben, nämlich Pfeile.
Und nur zum Spaß fügen wir auch noch flüssiger hinzu.
Und wir werden nur sagen, dass Run wirklich schnell gelaufen ist.
In Ordnung, also wollen wir, dass dieser Hybrid-Bawk all diese Methoden hat, können wir das tun?
Nun, wir müssen nur Wizard und dann Archer sagen, wir können ihm so viele Parameter geben, wie wir wollen, wie
wir mehrere Vererbungen von Wizard und Archer erben, damit wir hier sagen, ich tue es nicht alles und
ich werde einfach vorbeigehen.
Wenn ich, sagen wir, hybride Borg instanziiere, wird man hybrid.
Für instanziierte Klassen kann ich jetzt all diese Dinge verwenden.
Lassen Sie uns sie überprüfen, sagen wir, HP One-Dot-Run drucken.
Kann ich das machen?
Und wieder ein kleiner Rechtschreibfehler, stellen wir sicher, dass es sich um Hybrid-Hybrid-Borak und nicht um Hybrid-Board handelt.
Ich hoffe, dieses Video wird euch nicht langweilig.
Gut.
Ich erhalte einen Fehler, der bei den erforderlichen Positionsargumenten, dem Namen und der Leistung fehlt.
In Ordnung, denn obwohl wir diese Dinge richtig übergeben müssen, akzeptiert es diese Parameter.
OK, nehmen wir an, wir wollen einen Namen haben.
Borghi und die Macht, 50 zu sein, wenn ich das leite.
Alles klar, es sieht so aus, als ob ran wirklich schnell laufen funktioniert.
Ich konnte von Archer erben.
Wie wäre es mit Arroz-Check?
Wenn ich klicke, laufe.
Oh, ich bekomme Hybrid-Board-Objekt hat keine Attribute Airs.
Nun, warum ist das so?
Denn technisch gesehen wir.
Von Wizard First geerbt, dann akzeptiert Archer und Wizard.
Name und Macht.
Aber wir haben nie den Namen und die Arroz des Pfeils genannt.
Hmm, wie können wir das lösen?
Versuchen wir etwas, sagen wir, wir haben hier 100 mit dieser Arbeit Pfeile hinzugefügt.
Hmm, das geht nicht, oder?
Und das ist eine knifflige Sache bei der Mehrfachvererbung und warum einige Programmiersprachen tatsächlich nicht einmal
die Mehrfachvererbung zulassen, wird es etwas knifflig, denn im Kopf muss man sicherstellen, dass
man versteht, wie diese Klassen implementiert sind, und sich vergewissern dass wir nichts
überschreiben.
In unserem Fall können wir unseren Code ein wenig komplizieren.
Was können wir hier also tun?
Nun, hier drin kann ich vielleicht so etwas machen, ich kann sagen, definieren.
Drin.
Dieses empfängt sich selbst, es wird einen Namen, eine Macht und auch erhalten.
Arroz.
Und dann endlich, und hier kann ich sagen, dass wir auch den Bogenschützen nennen werden.
Punkt inet.
Und das wird ein Selfie machen und dann den Namen eingeben.
Und Darrels.
Also, wenn ich das starte.
Nun, fügen wir die Pfeile hinzu, hundert hier und ich klicke auf Ausführen.
Nun gut, Arrows funktioniert jetzt.
Nun, um zu überprüfen, ob unser Angriff auf den Zauberer auch funktioniert, wenn wir angreifen.
Und klick, Ron.
Oh Junge.
Jetzt hat unser Hybridobjekt keine Macht.
Also noch einmal, damit wir Macht haben, müssen wir dies und sagen wir diesmal Wizzard an sich
kopieren und ihm dann Macht geben.
Wenn ich klicke, laufe.
Okay, Angriff funktioniert, lass uns nochmal nachsehen und sichergehen, dass wir nichts kaputt gemacht haben.
Wenn ich darauf klicke funktioniert das auch.
Und schließlich, was ist mit Anmelden Bull Sign and Work?
Eingeloggt, alles klar.
Oh, Junge, das war viel und es gibt ein paar Möglichkeiten, dieses Problem tatsächlich zu lösen.
Was ich Ihnen jedoch zeigen wollte, ist, dass es bei Mehrfachvererbung kompliziert werden kann.
Und obwohl wir es Schritt für Schritt durchgehen, stellen Sie sich vor, es gäbe eine Coda, die
in Ihrem Team bei der Arbeit auftaucht, und versuchen Sie, diesen Code zu verstehen, bei dem wir hier einiges an Logik hinzugefügt haben und
die Dinge immer komplizierter werden und Es ist schwer, alles im Kopf zu behalten.
Und deshalb ist die Mehrfachvererbung eines dieser Dinge, bei denen sie wirklich, wirklich mächtig ist.
Aber mit großer Macht kommt auch große Verantwortung, denn wir schaffen immer mehr Komplexität.
Dies ist wiederum ein Grund dafür, dass einige Programmiersprachen die Mehrfachvererbung nicht zulassen.
Und übrigens, ich werde Sie noch mehr verwirren.
Und im nächsten Video werden wir über etwas namens MRO sprechen.
Und es wird ein weiteres großartiges Beispiel dafür sein, warum Sie bei Mehrfachvererbungen vorsichtig sein sollten.
Wir sehen uns darin.