Sobes.tech
Junior — Middle

Care este diferența dintre utilizarea unei metode statice și a unei metode de clasă în Python?

sobes.tech AI

Răspuns de la AI

Un metod static în Python este o metodă care nu primește automat nici o instanță a clasei (self), nici clasa însăși (cls) ca primul argument. Este declarat cu decoratorul @staticmethod și se comportă ca o funcție obișnuită, dar aparține logic clasei.

O metodă de clasă este declarată cu decoratorul @classmethod și primește clasa (cls) ca primul argument. Acest lucru permite metodei să lucreze cu clasa însăși, de exemplu, pentru a crea noi instanțe sau pentru a modifica proprietățile clasei.

Exemplu:

class MyClass:
    @staticmethod
    def static_method():
        print("Aceasta este o metodă statică")

    @classmethod
    def class_method(cls):
        print(f"Aceasta este o metodă de clasă, apelată pentru {cls}")

MyClass.static_method()  # Va afișa: Aceasta este o metodă statică
MyClass.class_method()   # Va afișa: Aceasta este o metodă de clasă, apelată pentru <class '__main__.MyClass'>

Așadar, folosiți metoda statică atunci când funcția nu depinde de starea clasei sau a instanțelor sale, iar metoda de clasă atunci când trebuie să lucrați cu clasa însăși.