Willkommen zurück.
Wir haben erfahren, dass wir ein tatsächliches Attribut für die Klasse erstellen können, aber wie sieht es mit einer Methode aus?
Gibt es eine Möglichkeit, so etwas wie hier zu tun, was wir mit Attributen machen, aber für Methoden?
Nun, es gibt.
Und wir verwenden einen Dekorateur, ein Thema, das wir später behandeln werden.
Und Sie werden gleich verstehen, wie diese unter der Haube funktionieren.
Aber für den Moment verwenden wir die Syntax, die wir verwenden werden, und rufen dann eine Klassenmethode wie diese auf.
Und jetzt können wir mit diesem Dekorator eine Funktion schreiben, zum Beispiel erstellen wir eine
Funktion und nennen sie Dinge hinzufügen, die Namwon und Taubheit brauchen.
Und hier drin, oh, stellen Sie sicher, dass wir die Definition für die Funktion haben, und hier geben wir einfach Namwon zurück.
Plusnummer zu.
OK, was macht diese Klassenmethode?
Lassen Sie mich dies minimieren, damit wir ein bisschen besser sehen können.
Sehen wir uns hier an, ob Spieler 1 Zugriff darauf hat, Dinge hinzuzufügen.
Sagen wir einfach, Dinge zwei und drei hinzuzufügen, wenn ich klicke, laufe.
Nimmt zwei Positionsargumente an, aber drei wurden angegeben.
Hmm, das ist in Zeile 17, also wenn wir das aufrufen, haben wir es Parametern gegeben, aber dann erwartet,
dass wir tatsächlich drei haben und das liegt daran, dass der erste Parameter, genau wie
hier, hinzugefügt wird .
Die Klasse und Klasse steht für Klasse, also dieser Spielercharakter, das ist die Klasse, auf die wir uns beziehen, so ähnlich wie
das, was wir zuvor gesehen haben, aber der Standard ist, jetzt Klasse zu verwenden, wenn ich das starte.
Sie werden sehen, dass wir fünf bekommen.
OK, aber wenn man sich das ansieht, sieht es so aus, als ob es so ziemlich dasselbe ist wie oben,
außer dass wir anstelle von self Muscheln verwenden.
Aber wie ist das eine Klassenmethode?
Das liegt daran, dass wir dies tatsächlich verwenden können, ohne eine Klasse zu instanziieren.
Lassen Sie mich Ihnen zeigen, sagen wir, dass wir Spieler 1 nicht instanziieren, und jetzt rufe ich einfach hier den
Spielercharakter DOT auf und füge dies hinzu.
Wenn ich auf Ausführen klicke.
Sieh dir das an, ich bekomme fünf.
Es ist eine Methode für die eigentliche Klasse, es ist eine Klassenmethode.
So können Sie einige interessante Dinge tun, und übrigens werden Klassenmethoden nicht so oft verwendet.
Wenn Sie also denken, warum brauchen wir das überhaupt?
Nun, ich würde sagen, 95 Prozent Ihrer Klassen werden so etwas wie eine Klassenmethode nicht verwenden.
Aber es gibt Fälle, in denen dies nützlich sein könnte.
Zum Beispiel können wir die Klasse verwenden, um hier ein Objekt tatsächlich zu instanziieren.
Ich kann zum Beispiel sagen, dass Klasse, das ist die Klasse, die der Spielercharakter ist, und ich werde sie
instanziieren, erinnere dich, genau wie hier mit den Klammern, mit NUM eins plus Nummer zwei
als zweiter Parameter.
Und wir geben ihm den Namen Teddy.
Wenn ich hier laufe.
Sieh dir das an, ich habe ein Objekt instanziiert, Teddy, mit einem Alter von ungefähr fünf Jahren.
Also lass uns.
Nimm das.
Machen Sie dies gleich Spieler drei.
Und wenn ich hier Spieler 3 mache, tue ich und klicke auf Ausführen.
Ich bekomme fünf, also habe ich hier einen ganz neuen Player, der mit dieser Klassenmethode erstellt wurde.
Ich war also in der Lage, ein Klassenobjekt zu erstellen, um eine Klassenmethode zuzuweisen, indem ich dies vor Ort verwende.
Es gibt auch eine andere Möglichkeit, so etwas zu tun, nämlich die statische Methode.
Und die statische Methode funktioniert genauso wie hier, außer.
Sie haben keinen Zugriff auf diese Klasse oder die Klasse.
Sie können also nicht so etwas tun, wie wir es oben getan haben.
Stattdessen führen wir einfach eine Art Methode durch.
Wie das Hinzufügen von Dingen, um dies zu mögen.
Der einzige Unterschied zwischen den beiden besteht also darin, dass wir in unseren Parametern keinen Zugriff auf diese
Klasse haben.
Wir würden also so etwas wie eine statische Methode verwenden, bei der uns der Klassenzustand egal ist,
ein Klassenzustand ist so etwas.
Die Attribute interessieren uns nicht wirklich.
Wir verwenden so etwas wie eine Klassenmethode, wenn uns diese Attribute wichtig sind und wir sie vielleicht modifizieren oder
ändern möchten.
Nun, diese Klassenmethoden und statischen Methoden werden Sie nicht sehr oft sehen, aber ich wollte es
Ihnen zeigen, nur weil Sie während Ihrer Python-Karriere darauf stoßen könnten. Hoffentlich war dies im nächsten
Video nicht zu verwirrend.
Ich möchte das bisher Gelernte noch einmal Revue passieren lassen.