Sobes.tech
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, ne cls (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.