Python lernen

Magische Methoden und parametrisierte Konstruktoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Es ist in der Regel sinnvoll, ein Objekt bei der Erzeugung zu Initialisieren. Das macht man üblicherweise mit einem parametrisierten Konstruktor. Nur stellt Python für so etwas eine „magische Methode“ bereit.
04:38

Transkript

Sie sehen hier eine minimale Klasse, die nur einen Namen hat und eine leere Anweisung "pass" muss dastehen, damit überhaupt eine Anweisung in dieser Klasse vorhanden ist, das notwendig. Aber prinzipiell kann man diese Klasse bereits instanziieren. Das würde eine Instanz der Klasse "Tier" anlegen. Nur normalerweise ist es nicht sinnvoll, dass ein Objekt ohne eine vernünftige Initialisierung erzeugt wird. Man möchte gewisse Dinge, insbesondere die Eigenschaften von einem Objekt normalerweise beim instanziieren festlegen.Statt dem Default Konstruktor der hier benutzt wird, wird dann ein parametrisierter Konstruktor zum Einsatz kommen.Wobei Python hier ein etwas anderen Ansatz wählt und mit sogenannten magischen Methoden arbeitet. Magische Methoden werden für verschiedene Dinge enthalten, benutzt unter anderem auch zur Initialisierung von Eigenschaften eines Objektes, beim Anlegen des Objektes. Ich schreibe mal hier einer dieser magischen Methoden hin. Die sieht folgendermaßen aus. "def" dann kommen zwei Unterstriche, "init" und dann wieder zwei Unterstriche. Sie erkennen diese magische Methoden im Wesentlichen an den vorangestellten zwei Unterstrichen und vor allen Dingen auch den nachgestellten zwei Unterstrichen. Und diese Initialisierungsmethode, diese magische Initialisierungsmethode, die wird aufgerufen, wenn man ein Objekt nun beispielsweise dazu nutzen möchte, drei Eigenschaften zu initialisieren, "name", "alter" und "typ" Im Inneren nimmt man das Schlüsselwort "self", was ja für das aktuelle Objekt steht. Das sieht ein bisschen seltsam aus, aber das bedeutet, dass der Parameter der übergeben wird, zum Beispiel "name" dazu führt, dass es eine Eigenschaft und was ich jetzt hier deklariert habe, ist quasi das Analogon zu den sogenannten parametrisierten Konstruktoren in vielen anderen Sprachen. Ich kann jetzt hier auch noch mal eine Methode deklarieren. Methoden werden ja grundsätzlich als ersten Parameter hier dieses "self" stehen haben. Aber ich kann ja auch noch mal einen zweiten Parameter hier notieren. Das was dann in diesem Parameter steht, das wird hier ausgegeben. Wenn ich jetzt das Objekt erzeuge, dann habe ich eben nicht mehr den Default Konstruktor, sondern ich benutze ein parametrisierten Konstruktor mit drei Parametern. Warum drei? "self" fällt immer raus. Also das ist der "name", das wäre das "alter" und das wäre beispielsweise der "typ" und jetzt können wir zum Beispiel auch über "obj.typ" den Typ mal ausgeben. Oder wir können "obj.lautgeben" aufrufen, also die Methode, aber dann müssen Sie, weil wir ja hier einen Parameter "text" haben, auch einen Textparameter angeben. Führen wir Programm aus. Und das kommt raus. Sie haben also gesehen, wie man Objekte beim Erzeugen bereits so initialisieren kann, dass sie bestimmte Eigenschaften vorbelegt bekommen. Und etwas ist auch nebenher passiert, nämlich die Deklaration der Eigenschaften selbst, erfolgt in der magischen Methode. Wir haben nicht mehr in der Klasse selbst eine Eigenschaft, die dort deklariert wird, sondern in der magischen Methode wird über "self." bereits sozusagen implizit die Eigenschaft festgelegt. Das ist sehr, sehr elegant.

Python lernen

Lernen Sie Syntax, Konzepte und Sprachelemente der praktischen Programmiersprache Schritt für Schritt kennen.

3 Std. 41 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.06.2018

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!