Junior — Middle
Vysvetlite rozdiely medzi self a cls v kontexte metódov triedy
sobes.tech AI
Odpoveď od AI
V Pythone sú self a cls konvencie pre prvý parameter metód, ale majú odlišný účel:
selfje odkaz na konkrétny príklad triedy. Používa sa v bežných metódach inštancie na prístup k atribútom a metódam tohto objektu.clsje odkaz na samotnú triedu, nie na jej príklad. Používa sa v triednych metódach (označených dekorátorom@classmethod) na prácu s triedou ako celkom, napríklad na vytváranie nových príkladov alebo na zmenu vlastností triedy.
Príklad:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Premenná inštancie: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Premenná triedy: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # volanie metódy inštancie
MyClass.class_method() # volanie metódy triedy