Junior — Middle
Erklären Sie die Unterschiede zwischen self und cls im Kontext von Klassenmethoden
sobes.tech KI
Antwort von AI
In Python sind self und cls Konventionen für den ersten Parameter von Methoden, aber sie haben unterschiedliche Zwecke:
selfist eine Referenz auf eine konkrete Instanz der Klasse. Es wird in normalen Instanzmethoden verwendet, um auf die Attribute und Methoden dieses Objekts zuzugreifen.clsist eine Referenz auf die Klasse selbst, nicht auf eine Instanz. Es wird in Klassenmethoden (markiert mit dem Dekorator@classmethod) verwendet, um mit der Klasse insgesamt zu arbeiten, z.B. um neue Instanzen zu erstellen oder Klassenattribute zu ändern.
Beispiel:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Instanzvariable: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Klassenvariable: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # ruft eine Instanzmethode auf
MyClass.class_method() # ruft eine Klassenmethode auf