Junior — Middle
Kā atšķiras statiskās metodes izmantošana no klases metodes Python?
sobes.tech AI
Atbilde no AI
Statiskā metode Python ir metode, kas automātiski nepieņem ne klases eksemplāru (self), ne pašu klasi (cls) kā pirmo argumentu. To deklarē ar dekoratoru @staticmethod un tas darbojas kā parasta funkcija, bet loģiski pieder klasei.
Klases metode tiek deklarēta ar dekoratoru @classmethod un saņem klasi (cls) kā pirmo argumentu. Tas ļauj metodei strādāt ar pašu klasi, piemēram, izveidot jaunas instances vai mainīt klases īpašības.
Piemērs:
class MyClass:
@staticmethod
def static_method():
print("Šis ir statiskais metode")
@classmethod
def class_method(cls):
print(f"Šis ir klases metode, izsaukta uz {cls}")
MyClass.static_method() # Izvadīs: Šis ir statiskais metode
MyClass.class_method() # Izvadīs: Šis ir klases metode, izsaukta uz <class '__main__.MyClass'>
Tādēļ, izmantojiet statisko metodi, kad funkcija nav atkarīga no klases vai tās instanču stāvokļa, un klases metodi — kad nepieciešams strādāt ar pašu klasi.