Konstruktormethode (__init__)
Teil des Abschnitts Objektorientierte Programmierung der Python-Journey von Coddy. Lektion 7 von 64.
Die Methode __init__ ist eine spezielle Methode, die automatisch ausgeführt wird, wenn du ein neues Objekt erstellst. Sie initialisiert die Attribute des Objekts.
Hier ist ein Beispiel für eine Klasse mit einem Konstruktor:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedDie Methode __init__ nimmt Parameter entgegen und weist sie mithilfe von self Instanzattributen zu.
Erstelle Objekte mit dem Konstruktor:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Wenn du Dog("Rex", "German Shepherd") aufrufst, ruft Python automatisch __init__ auf und übergibt die Argumente.
Greife auf die Attribute zu, die vom Konstruktor festgelegt wurden:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)Ausgabe:
Rex
German Shepherd
Buddy
Golden RetrieverDu kannst auch einen Konstruktor mit Standardwerten haben:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# Katzen erstellen
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age standardmäßig auf 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")Ausgabe:
Fluffy is 3 years old
Whiskers is 1 years oldWichtiger Punkt: Die Methode __init__ stellt sicher, dass jedes Objekt bei seiner Erstellung ordnungsgemäß mit seinen Anfangsdaten eingerichtet wird. Dadurch musst du Attribute nach der Objekterstellung nicht manuell festlegen.
Aufgabe
EinfachDir werden Python-Dateien (book.py und driver.py) zur Verfügung gestellt, um ein Buchverwaltungssystem zu implementieren. In dieser Aufgabe definierst du in einer Datei eine Book-Klasse, die in eine andere Datei importiert und dort verwendet wird.
Deine Aufgabe ist es:
- Die
Book-Klasse inbook.pymit einer__init__-Methode zu vervollständigen, die die Attributetitle,authorundpagesinitialisiert - Die Datei
driver.pyimportiert und verwendet deineBook-Klasse, um ein Buchobjekt für"Harry Potter" by "J.K. Rowling" with 400 pageszu erstellen
Folge den detaillierten TODO-Kommentaren in book.py.
Probier es selbst
# TODO: Importiere die Book-Klasse aus book.py
# Verwende dieses Format: from book import Book
# TODO: Erstelle ein book-Objekt namens 'my_book' mit den folgenden Werten:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Beispiel: my_book = Book("Title", "Author", pages)
# Buchdetails ausgeben
# TODO: Stelle sicher, dass my_book richtig definiert ist, bevor diese Zeile ausgeführt wird
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktormethode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDie super()-FunktionMethodenüberschreibungMehrfachvererbungMethodenauflösungsreihenfolgeWiederholung – Mitarbeiterhierarchie7Spezielle Methoden
Einführung in magische MethodenOperatorüberladungMagische Methoden für ContainerRückblick – Benutzerdefinierte Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschließende Herausforderungen
E-Learning-PlattformBankensystemEntwicklung von SpielfigurenFahrzeugvermietungsservice2Dekoratoren
Einführung in DekoratorenProperty-DekoratorDekorator für statische MethodenDekorator für Klassenmethoden5Polymorphie
Methodenüberschreibung erneut betrachtetDuck-TypingAbstrakte Klassen und MethodenSchnittstellendesignRückblick – Formrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische Methoden und KlassenmethodenKlassen-DekoratorenKontextmanager3Klassenattribute
Instanz- vs. KlassenvariablenProperty-DecoratorsPrivate AttributeWiederholung – Bankkontoverwaltung6Kapselung
Öffentliche, geschützte, private MemberZugriffsmodifikatorenInformationsverbergungProperty-Decorators – FortgeschrittenWiederholung – System zur Verwaltung von Studentendaten12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und BenutzerklassenAusleihsystemSuchfunktionAdministrationsoberflächeTests und IntegrationÜbe selbstständig: Online-Python-Compiler