Der self-Parameter
Teil des Abschnitts Objektorientierte Programmierung der Python-Journey von Coddy. Lektion 4 von 64.
Der Parameter self bezieht sich innerhalb von Methoden auf die Instanz einer Klasse. Er ermöglicht dir, auf die Attribute des aktuellen Objekts zuzugreifen und sie 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 Parameter self 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 SedanBeachte, dass du beim Aufruf von my_car.describe() nichts für self übergibst – Python übergibt my_car automatisch als 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 Parameter self ermöglicht jedem Objekt den Zugriff auf seine eigenen Daten. Ohne self wüssten Methoden nicht, die Attribute welches 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.
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() # Should print: This car is a 2020 Toyota CorollaDiese 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