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.