Junior — Middle
Czym różni się użycie metody statycznej od metody klasy w Pythonie?
sobes.tech AI
Odpowiedź od AI
Metoda statyczna w Pythonie to metoda, która automatycznie nie przyjmuje ani instancji klasy (self), ani samej klasy (cls) jako pierwszego argumentu. Jest deklarowana za pomocą dekoratora @staticmethod i zachowuje się jak zwykła funkcja, ale logicznie należy do klasy.
Metoda klasy jest deklarowana za pomocą dekoratora @classmethod i przyjmuje klasę (cls) jako pierwszy argument. Pozwala to metodzie na pracę z samą klasą, na przykład tworzenie nowych instancji lub modyfikowanie właściwości klasy.
Przykład:
class MyClass:
@staticmethod
def static_method():
print("To jest metoda statyczna")
@classmethod
def class_method(cls):
print(f"To jest metoda klasy, wywoływana dla {cls}")
MyClass.static_method() # Wypisze: To jest metoda statyczna
MyClass.class_method() # Wypisze: To jest metoda klasy, wywoływana dla <class '__main__.MyClass'>
Używaj więc metody statycznej, gdy funkcja nie zależy od stanu klasy lub jej instancji, a metody klasy, gdy trzeba pracować z samą klasą.