Das self-Schlüsselwort in Python

Muhammad Waiz Khan 7 März 2021
Das self-Schlüsselwort in Python

Dieses Tutorial erklärt den Zweck und die Verwendung des Schlüsselworts self in Python. In der objektorientierten Programmierung haben wir Klassen, und jede Klasse hat verschiedene Attribute und Methoden. Wann immer ein Objekt oder eine Instanz einer Klasse erzeugt wird, wird der Konstruktor (in Python die Methode __init__()) aufgerufen, um die Attribute der Instanz zu initialisieren.

Beim Erzeugen einer Instanz einer Klasse müssen wir die Instanzattribute von den Argumenten und anderen Variablen unterscheiden oder angeben. Und dazu brauchen wir das Schlüsselwort self, um festzulegen, dass wir den Wert an die Instanzattribute und nicht an die lokale Variable oder das Argument mit demselben Namen übergeben.

Angenommen, wir übergeben für eine Klasse car das Argument color an die Methode __init__(), um das Attribut color der Klasse car zu initialisieren, dann werden wir das Attribut color der Instanz als self.color spezifizieren, was zeigt, dass die Klasse car ein Attribut color hat und wir den Wert diesem Attribut zuweisen.

In ähnlicher Weise können wir auch die Instanzmethoden der Klasse mit dem Schlüsselwort self aufrufen, wie zum Beispiel die Methode self.start() der Klasse car. Zusammenfassend können wir also sagen, dass das Schlüsselwort self dem Anwender erlaubt, die Attribute und Methoden einer Instanz der Klasse anzugeben und darauf zuzugreifen.

Verwendung und Beispielcodes des Schlüsselworts self in Python

Schauen wir uns nun an, wie das Schlüsselwort self in Python verwendet wird, um die Methoden und Attribute einer Instanz anhand eines Beispielcodes anzugeben.

Der erste Beispielcode unten demonstriert, wie das Schlüsselwort self in der Methode __init__() verwendet wird, um die Attribute der zu initialisierenden Instanz zu initialisieren. Wir müssen keine Variablen deklarieren oder erstellen, bevor wir sie initialisieren oder ihnen Werte zuweisen, so dass wir die Instanzattribute auf folgende Weise initialisieren können:

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color


mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)

Ausgabe:

model XYZ
red

Wie oben zu sehen ist, wird beim Erzeugen einer neuen Instanz der Klasse automatisch die Methode __init__() aufgerufen und ihre Attribute werden initialisiert. Um auf die Methoden und Attribute der Instanz zugreifen zu können, muss self der Parameter der Methode sein.

Der folgende Beispielcode demonstriert, wie man das Schlüsselwort self verwendet, um die Instanz/Klassenmethoden innerhalb anderer Klassenmethoden in Python aufzurufen.

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color

        self.start()

    def start(self):

        print(self.model + ", has started!")


mycar = car("model XYZ", "red")

Ausgabe:

model XYZ, has started!

Wie im obigen Beispielcode können wir Klassenmethoden mit dem Schlüsselwort self aufrufen und auf die Attribute in einer beliebigen Klassenmethode zugreifen, indem wir die Instanz der Klasse als Parameter self übergeben.

Verwandter Artikel - Python Keyword