Junior — Middle
Python-da statik metod və sinif metodu istifadəsi arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Python-də statik metod, avtomatik olaraq sinif nümunəsini (self) və ya sinifi (cls) ilk arqument kimi qəbul etməyən metoddur. Bu, @staticmethod dekoratoru ilə elan edilir və adi funksiya kimi davranır, lakin məntiqi olaraq sinfə aiddir.
Sinf metodu isə @classmethod dekoratoru ilə elan edilir və ilk arqument kimi sinfi (cls) qəbul edir. Bu, metodun siniflə işləməsinə imkan verir, məsələn, yeni nümunələr yaratmaq və ya sinifin xüsusiyyətlərini dəyişdirmək üçün.
Nümunə:
class MyClass:
@staticmethod
def static_method():
print("Bu statik metoddur")
@classmethod
def class_method(cls):
print(f"Bu sinif metodudur, çağırılır: {cls}")
MyClass.static_method() # Çıxış: Bu statik metoddur
MyClass.class_method() # Çıxış: Bu sinif metodudur, çağırılır: <class '__main__.MyClass'>
Beləliklə, funksiya sinifin və ya onun nümunələrinin vəziyyətindən asılı deyilsə, statik metoddan istifadə edin, və siniflə işləmək lazımdırsa, sinif metodundan istifadə edin.