Der self-Parameter
Teil des Abschnitts Object Oriented Programming der Python-Journey von Coddy — Lektion 4 von 64.
Der self-Parameter bezieht sich auf die Instanz einer Klasse innerhalb von Methoden. Er ermöglicht es Ihnen, auf Attribute des aktuellen Objekts zuzugreifen und diese zu ändern.
Hier ist ein Beispiel für eine Klasse mit Methoden, die self verwenden:
class Car:
def honk(self):
print("Beep beep!")
def describe(self):
print(f"I am a {self.color} {self.model}")Der self-Parameter muss in Methodendefinitionen immer der erste Parameter sein. Er teilt der Methode mit, welches spezifische Objekt verwendet wird.
Erstellen Sie ein Auto-Objekt und fügen Sie Attribute hinzu:
my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"Rufen Sie nun die Methoden auf:
my_car.honk()
my_car.describe()Ausgabe:
Beep beep!
I am a Red SedanBeachten Sie, dass beim Aufruf von my_car.describe() nichts für self übergeben wird – Python übergibt automatisch my_car als den self-Parameter.
Hier ist, was hinter den Kulissen passiert:
# Wenn Sie dies schreiben:
my_car.describe()
# Python macht tatsächlich Folgendes:
Car.describe(my_car)Der self-Parameter ermöglicht es jedem Objekt, auf seine eigenen Daten zuzugreifen. Ohne self wüssten Methoden nicht, welche Attribute eines Objekts sie verwenden sollen.
Wichtiger Punkt: Geben Sie self immer als ersten Parameter in Methodendefinitionen an, aber übergeben Sie es niemals beim Aufrufen von Methoden – Python erledigt dies automatisch.
Aufgabe
EinfachVervollständige die Klasse Car in car.py, indem du eine Methode namens display_info hinzufügst, die den Parameter self verwendet, um das Jahr, die Marke und das Modell des Autos in folgendem Format auszugeben:
"This car is a [year] [make] [model]".
car.py: Enthält die Definition der KlasseCar, in der du die Methodedisplay_infohinzufügen wirstdriver.py: Hauptausführungsdatei, die die KlasseCarimportiert und verwendet
Die Datei driver.py wird deine Klasse Car importieren und Instanzen erstellen, um deine Implementierung zu testen. Stelle sicher, dass deine Methode korrekt funktioniert, wenn sie von der Driver-Datei aus aufgerufen wird.
Spickzettel
Der Parameter self bezieht sich auf die Instanz einer Klasse innerhalb von Methoden und ermöglicht es Ihnen, auf Attribute des aktuellen Objekts zuzugreifen und diese zu ändern.
self muss in Methodendefinitionen immer der erste Parameter sein:
class Car:
def honk(self):
print("Beep beep!")
def describe(self):
print(f"I am a {self.color} {self.model}")Erstellen Sie ein Objekt und fügen Sie Attribute hinzu:
my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"Methoden aufrufen (Python übergibt das Objekt automatisch als self):
my_car.honk() # Beep beep!
my_car.describe() # I am a Red SedanWichtiger Punkt: Geben Sie self in Methodendefinitionen immer als ersten Parameter an, übergeben Sie es jedoch niemals beim Aufrufen von Methoden.
Probier es selbst
from car import Car
# Teste deinen Code
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"
my_car.display_info() # Sollte ausgeben: Dieses Auto ist ein 2020 Toyota CorollaDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Object Oriented Programming
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktor-Methode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDie super()-FunktionMethoden überschreibenMehrfachvererbungMethod Resolution OrderZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden
Einführung in Magic MethodsOperator-ÜberladungMagic Methods für ContainerRückblick - Eigene Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung2Dekoratoren
Einführung in DekoratorenProperty-DekoratorStatischer Methoden-DekoratorKlassenmethoden-Dekorator5Polymorphismus
Methoden-Überschreiben vertieftDuck TypingAbstrakte Klassen und MethodenInterface-DesignZusammenfassung – Formen-Rechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische und KlassenmethodenKlassendekoratorenContext Manager3Klasseneigenschaften
Instanz- vs. KlassenvariablenProperty-DekoratorenPrivate AttributeZusammenfassung – Bankkonto-Manager6Kapselung
Public, Protected, Private MemberZugriffsmodifikatorenInformation HidingProperty-Decorators für FortgeschritteneZusammenfassung - Studentenverwaltungssystem12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen