Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Python 3 Grundkurs

Magische Methoden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Magische Methoden verfügen in Python über besondere Bedeutungen innerhalb von Klassen. Dazu zählen verschiedene Konstruktoren, Destruktoren sowie Initialisierungsmethoden.

Transkript

In diesem Video geht es um sogenannte Magic Methoden. Magic Methoden sind bei Python Methoden, die in einer Klasse grundsätzlich eine besondere Bedeutung haben. Solche Methoden werden auch in anderen Programmiersprachen angeboten, in Python nennt man sie Magic Methoden, aber wir gehen mal direkt in unser Programm rein, dann zeige ich Ihnen, wie die aussehen. Denn bei Python ist es auch wieder besonders, weil die auch direkt erkennbar sind. Ich werde jetzt mal eine, oder die gängigste Magic Methode zeigen, und zwar ist das die Initialisierungsmethode init - so sieht die aus, und - ja - also, diese beiden Unterstriche, und diese beiden, das ist das Erkennungszeichen der Magic Methoden, und also immer wenn Sie so was sehen, dann können Sie gleich davon ausgehen, dass es eine Methode ist, die für Python eine besondere Bedeutung hat. Die Initialisierungsmethode ist besonders wichtig, wieso, man kann hiermit dafür sorgen, dass man während der Konstruktion oder während der Initialisierung der Objekte hier dafür sorgt, dass hier etwas Besonderes darin passiert. Das schauen wir uns gleich an. Nicht zu verwechseln ist die Initialisierungsmethode mit dem sogenannten Konstruktor, der Konstruktor hat bei anderen Programmiersprachen die gleiche Bedeutung, wie die Initialisierungsmethode bei Python, Python kennt auch einen Konstruktor, der wird New genannt, der sieht dann etwa so aus, aber den benutzt man überhaupt nicht, sondern init ist hier das Richtige, Und, ja - wir werden jetzt einfach mal so eine Initialisierungsmethode benutzen, und dann zeige ich Ihnen, was man damit machen kann. Zunächst mal schreibe ich hier hinein print, und dann 'ich werde initialisiert'. So. Wenn ich das Ganze jetzt mal aufrufe, dann sehen Sie, wann die aufgerufen wird, beziehungsweise, dass die aufgerufen wird, bevor die Anmeldemethode aufgerufen wurde, Ja, das ist auch kein Wunder, das ist ja auch die Initialisierungsmethode, die aufgerufen wird, wenn ein Objekt erzeugt wird, beziehungsweise kurz danach. Ja - was kann man hier damit machen? Ich kann hier zum Beispiel an dieser Stelle zwei Übergabeparameter, beziehungsweise Methodenparameter hineinschreiben, zum Beispiel Name und groesse, jetzt kann ich da drin das Ganze zuweisen, self.name=Name, dadurch wird der Wert, der hier übergeben wird, an diese Variable hier übergeben, das ist nämlich der Name eben des Exemplars, das gerade aktiv ist, und auch noch self.groesse=groesse, Ich hätte das jetzt hier auch anders benennen können, dann wäre es vielleicht deutlicher, mit gr oder so was, spielt aber keine Rolle, das macht man mal so, mal so. Für manche Entwickler sieht das so leserlicher aus, im Grund genommen handelt es sich aber um unterschiedliche Variablen, also dieser Bereich ist im Arbeitsspeicher ein anderer als dieser. So, das hätten wir, und jetzt können wir - eben den Benutzer direkt bei der Initialisierung schon so erzeugen, dass er mit Namen und Größe direkt auf die Welt kommt, also, ich kann jetzt hier reinschreiben 'Alex', und dann1.75, und kann hierauf verzichten. So, jetzt führe ich das mal aus, und dann sehen Sie, dass das jetzt hier genauso funktioniert. Ja, genauso wie es eine Initialisierungsmethode gibt, gibt es auch einen Destruktor, eine Methode, die aufgerufen wird, wenn das Objekt entfernt wird, wenn ich jetzt hier zum Beispiel hineinschreiben würde: del benutzer1, dann würde Python dafür sorgen, dass der benutzer1 aus dem Arbeitsspeicher wieder entfernt wird. Ich führe das mal aus, dann sehen Sie, da passiert nichts, das Objekt ist aber nicht da, wir können aber jetzt dafür sorgen, dass etwas Sichtbares passiert, und zwar schreibt sich der Destruktor so: mit del, und jetzt kann ich hier Folgendes machen, und zwar schreibe ich einfach hinein print, 'ich werde gelöscht' So, und wenn ich das jetzt ausführe, nein, hier habe ich noch einen Fehler, def - genau, also nochmal - und, ja - also der Destruktor wird aufgerufen, wenn das Objekt an dieser Stelle aus dem Arbeitsspeicher entfernt wird, Ja, was gibt es noch, es gibt noch weitere Magic Methoden, die sehr wichtig sind, eine, die sehr wichtig ist, ist auch diese hier, die str, denn die hat folgende Erleichterung, ich kann jetzt nämlich so was machen: ich kann jetzt in str - da gebe ich ein drt zurück, und zwar beispielsweise 'Benutzer', und dann +self.Name. So, und jetzt ist es so, wenn ich das jetzt abspeichere, ich kann jetzt zum Beispiel mal den Benutzer ausgeben, print(benutzer). Normalerweise, wenn das nicht vorhanden wäre, ich kommentiere das nochmal aus, dann würden wir ja so was sehen - Oh, Benutzer ist nicht definiert, benutzer1, nochmal. Auch nicht definiert. Was habe ich falsch gemacht? Ach, den habe ich hier gerade entfernt, gut. Das muss hier wieder raus, also - So, hier sehen Sie dann die Ausgabe der Printanweisung, und zwar - hier stellt halt eben dieses kryptische Benutzer object at und so weiter, das ist ja für uns Menschen nicht besonders gut lesbar, und deswegen kann ich so eine Methode jetzt hier hineinschreiben, und wenn ich jetzt hingehe und sag, gib den benutzer1 mal aus, dann wird er mir genau das ausgeben, was ich hier vorbereitet habe, nämlich Benutzer ('Alex') - gut. Könnte man ein bisschen schöner machen, aber - Darum geht es hier, eben dass man die Objekte direkt ausgeben kann, und dann eben gar nicht mehr sich darum kümmern braucht, jedes mal, was genau und wie das formatiert sein soll und so weiter.

Python 3 Grundkurs

Lernen Sie die Entwicklungsumgebung sowie die grundlegenden Konzepte von Python kennen und schreiben Sie schon bald eigene Anwendungen.

4 Std. 33 min (49 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:26.03.2015

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!