Junior — Middle
Kāda ir @staticmethod dekoratora Python un kā tas atšķiras no parastajiem klases metodiem?
sobes.tech AI
Atbilde no AI
Pythonā @staticmethod dekorators tiek izmantots, lai definētu metodi klasē, kas nav atkarīga no klases instances un automātiski nepieņem self parametru.
Atšķirības no parastajām metodēm:
- Parastās metodes pieņem kā pirmo parametru
self— atsauci uz pašreizējo klases instanci. - Statiskās metodes nepieņem ne
self, necls(atsauci uz klasi).
Tas nozīmē, ka statiska metode ir vienkārši funkcija, kas ir loģiski saistīta ar klasi, bet neizmanto tās stāvokli.
Piemērs:
class MyClass:
@staticmethod
def static_method(x, y):
return x + y
def instance_method(self, x, y):
return x * y
print(MyClass.static_method(3, 4)) # 7
obj = MyClass()
print(obj.instance_method(3, 4)) # 12
Statiskās metodes ir noderīgas palīgfunkcijām, kas ir jēgpilnas klases kontekstā, bet neprasa piekļuvi tās datiem.