Junior — Middle
Izskaidrojiet atšķirības starp self un cls klases metožu kontekstā
sobes.tech AI
Atbilde no AI
Pythonā self un cls ir konvencijas pirmajam metodes parametram, bet tiem ir dažādi mērķi:
selfir atsauce uz konkrētu klases piemēru. To izmanto parastajās piemēra metodēs, lai piekļūtu šī objekta atribūtiem un metodēm.clsir atsauce uz pašu klasi, nevis uz tās piemēru. To izmanto klases metodēs (@classmethoddekorators), lai strādātu ar visu klasi, piemēram, izveidotu jaunus piemērus vai mainītu klases īpašības.
Piemērs:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Piemēra mainīgais: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Klases mainīgais: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # izsauc piemēra metodi
MyClass.class_method() # izsauc klases metodi