Sobes.tech
Junior — Middle

Care este scopul decoratorului @staticmethod în Python și în ce se deosebește de metodele obișnuite ale clasei?

sobes.tech AI

Răspuns de la AI

Decoratoarea @staticmethod în Python este utilizată pentru a defini o metodă în interiorul unei clase care nu depinde de o instanță a clasei și nu acceptă automat parametrul self.

Diferențe față de metodele obișnuite:

  • Metodele obișnuite acceptă ca primul parametru self — o referință la instanța curentă a clasei.
  • Metodele statice nu acceptă nici self, nici cls (o referință la clasă).

Aceasta înseamnă că o metodă statică este pur și simplu o funcție logic legată de clasă, dar care nu utilizează starea acesteia.

Exemplu:

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

Metodele statice sunt utile pentru funcții utilitare care au sens în contextul clasei, dar nu necesită acces la datele acesteia.