Sie haben lange darauf gewartet, weil ich es lange vermieden habe, über diese magischen Methoden von Dundar zu
sprechen.
In diesem Video werden wir endlich aufdecken, was sie jetzt tun.
Wir können sehen, was unsere Instanz als Methoden hat, indem wir die Türmethode verwenden.
Und wir haben Ihnen gesagt, dass diese von unserer Basisobjektklasse geerbt wurden.
Dies unterstreicht nun unsere besonderen Methoden.
Denken Sie daran, dass wir zum Beispiel Dinge wie LENTH haben, die es uns ermöglichen, die Länge eines Arrays zu bestimmen.
Diese werden tatsächlich mit diesen Dundar-Methoden implementiert.
Sie ermöglichen es uns, Python-spezifische Funktionen für Objekte zu verwenden, die durch unsere Klasse erstellt wurden.
Lassen Sie mich Ihnen also zeigen, was ich meine.
Wir werden eine neue Klasse erstellen und dies wird eine Spielzeugklasse sein.
Jetzt definieren wir hier ein Spielzeug und initialisieren es mit self.
Dann sagen wir, dass es Farbe und Alter hat.
Jetzt wird Farbe gleich Farbe sagen.
Das werden also unsere Attribute sein.
Und H.
Fantastisch.
Da ist jetzt unsere Klasse, sagen wir, wir wollen eine Actionfigur erstellen.
Diese Actionfigur wird mit Spielzeug instanziiert, sagen wir, Farbe Rot und Alter, sie ist brandneu, also in
der Nähe.
Nun, wenn ich so etwas verwende wie, sagen wir s t r, das mit diesem Objekt geliefert wird, wenn
ich Stern- oder Actionfiguren-Punkte unterstreiche, unterstreiche s t r so.
Und das drucken wir.
Wir sehen, dass wir das bekommen.
Es ist genau dasselbe wie bei uns, SDR-Actionfiguren zu machen.
So was.
Sieh dir das an.
Diese Dundar-Methoden mit doppeltem Unterstrich sind spezielle Methoden, die Python erkennt.
Zum Beispiel den Dundar-Stern, diese spezielle Methode ermöglicht es uns, Actionfiguren wie diese mit der eingebauten
Sternfunktion zu verwenden.
Wenn Sie die Python-Dokumentation im Abschnitt spezielle Methodennamen aufrufen, werden Sie feststellen,
dass wir grundlegende Anpassungen dieser Dundar-Methoden vornehmen können, und es ist eine lange Liste all dieser Dundar-Methoden,
die wir verwenden können.
Gehen Sie jetzt nicht hin und lesen Sie jeden einzelnen von ihnen.
Es gibt viele und Sie werden sie nicht so oft verwenden.
Es gibt nur wenige bestimmte Fälle, in denen Sie sie verwenden werden.
Und die Idee ist zu wissen, wie man sie modifiziert und wie sie unter der Haube funktionieren.
So.
Lassen Sie uns ein paar Beispiele durchgehen, zum Beispiel ändern wir, was der ATSDR tut, ich
werde hier meinen eigenen SDR definieren.
Ich werde mich selbst anrufen.
Und dann hier drin, werde ich etwas anderes zurückgeben, ich werde sagen, eine F-Saite
zurückgeben.
Das ist, sagen wir, autodidaktische Farbe.
Wenn ich das laufe.
Ich werde rot.
Erinnern Sie sich, wie er sagte, die Methoden von Dundar nicht zu ändern?
Nun, manchmal ist das erlaubt, vielleicht gibt es Fälle, spezielle Fälle, in denen Sie möchten, dass sich
Ihre Klasse auf eine bestimmte Weise verhält, genau wie Wörterbücher, Listen, Tupel und alle unsere Objekte in Python sich auf bestimmte Weise
verhalten können.
Wie auf Listen mit einer Indexnummer und auf ein Wörterbuch mit dem Schlüssel zugegriffen wurde.
Diese werden alle mit diesen Duder-Methoden implementiert.
Und Sie sehen hier, dass der Stern jetzt eine rote zurückgibt, die als Actionfigur bezeichnet wird, da wir dies geändert haben.
Es ändert nichts anderes als bei einer Actionfigur. Wenn ich das ausführe, werden Sie sehen, dass es immer noch eine Actionfigur
wie diese läuft, weil dies eine Zeichenfolge ist.
Der Stern wird nur modifiziert, wenn wir ihn für dieses spezielle Objekt verwenden.
Wie so.
Was können wir noch tun?
Nun, wir können auch die Bedeutung der Länge ändern.
So lang, kann ich selbst sagen.
Und hier drin kann ich einfach zurückkehren.
Wenn ich jetzt drucke.
Länge der Actionfigur.
Und ich klicke auf Ausführen.
Ich bekomme fünf.
Übrigens sehr cool, wenn diese Unterstreichung etwas nervig wird, was für mich ehrlich gesagt etwas nervig wird, klicke
ich hier auf Einstellungen und entferne einfach die Codeintelligenz, damit sie mir nicht sagt, wann Mein
Code ist falsch, aber hoffentlich können Sie ihn einfach selbst debuggen.
Gut.
Also los geht's, wir haben gerade die Länge von Dundar geändert, um fünf zurückzugeben.
Lassen Sie uns weiter experimentieren, wir können auch etwas wie unterstreichen, unterstreichen, löschen und löschen.
Nun, lassen Sie uns tatsächlich das Schlüsselwort delete verwenden, das wir noch nie zuvor gesehen haben.
Löschen.
Wir können nur Rückkehr sagen.
Gelöscht.
Du musst so vorgehen und lass uns einfach hier drucken, drucken gelöscht, wenn ich auf Ausführen klicke.
Wie ich sehe, habe ich das Löschschlüsselwort gelöscht, das ich dir nicht wirklich beigebracht habe, weil es normalerweise
nicht viel zu sehen ist.
Dies kann einige lustige Fehler in unseren Programmen verursachen, die ich persönlich gerne vermeide.
Aber das Schlüsselwort delete löscht eine Art Variable, die wir möglicherweise in unserem Programm hatten.
Rechts.
Was gibt es noch?
Lassen Sie uns dies ändern, um etwas namens call zu verwenden.
Und Kohle ist interessant.
Sagen wir, mit Kohle werden wir zurückkehren und sagen wir ja, Fragezeichen.
Das Schöne an Carl ist, dass es unserer Spielzeugklasse jetzt eine Superkraft verleiht, wir können Actionfigur sagen und
dann sagen, naja, mit Carl können wir jetzt mit diesen Bracketts tatsächlich das eigentliche Objekt nennen.
Mit call habe ich also diese spezielle Möglichkeit, eine Funktion aufzurufen, die übrigens unter der Haube die Art
und Weise, wie wir Funktionen aufrufen können, mit diesem Dundar-Aufruf ist.
Und wenn ich klicke, laufe.
Ich verstehe ja, wie cool ist das?
In Ordnung, noch ein letztes, denn ich denke, Sie bekommen langsam eine Vorstellung davon, wie ich bereits sagte, dies
sind alle hier erhältlich.
Normalerweise möchten Sie sie nicht überschreiben, sondern nur wissen, dass Sie die Möglichkeit dazu haben.
Wenn Sie dies auswählen, heißt das nächste Element abrufen.
Also definieren wir get item.
Wieder verwenden wir self am ersten Parameter und dann sagen wir ich für index und hier
geben wir self dot zurück und fügen ein Attribut hinzu, bevor wir das hinzufügen, ich sage self dot my dict for mein Wörterbuch
und füge dann den Namen hinzu.
Er geht zu dir.
Und lassen Sie uns Haustiere gleich false haben.
Nun, mit dieser kann ich sagen, mein.
DECT.
Und geben Sie das Element basierend auf dem Index zurück, den wir ihm geben.
Lassen Sie mich Ihnen also zeigen, was ich meine, wenn ich jetzt drucke.
Actionfigur Dot, und hier, anstatt den Punkt zu machen, machen wir die eckigen Klammern so, wie wir vielleicht auf ein
Wörterbuchelement zugreifen würden, mit dem wir jetzt das Element abrufen können, das uns sagt, welche Eigenschaften wir
haben.
Sagen wir also den Namen.
Und wenn ich dieses OOP drucke.
Habe vergessen hier ein Komma einzufügen.
Versuchen wir es noch einmal.
Und wenn ich nach unten scrolle, kannst du sehen, dass ich wirklich gut darin bin, Fehler zu lesen, Namir Name Actionfigur ist
nicht definiert, weil es Actionfigur ist, nicht Fugere.
Das ist besser, sehen Sie sich das an, mein Name, Yo-Yo, konnte mit dieser
Klammernotation mit dem Get-Item Dundar sehr, sehr cool zugreifen.
Diese speziellen magischen Methoden sind also wirklich interessant, weil sie es uns ermöglichen, einige benutzerdefinierte Modifikationen
unserer Klassen vorzunehmen.
Und Sie können auch verstehen, wie in Python eingebaute Standardtypen Zugriff und Fähigkeiten haben, um all diese speziellen
Syntaxen zu haben.
Diese Macht haben wir jetzt auch.
Lass uns eine Pause machen und ein bisschen trainieren.