Sobes.tech
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.