Sobes.tech
Junior — Middle

Pythonда статикалык ыкма менен класс ыкмасынын колдонулушу кандай айырмаланат?

sobes.tech AI

AIден жооп

Python'da statik metod, avtomatik tarzda sinf nusxasini (self) yoki sinfni (cls) birinchi argument sifatida qabul qilmaydigan metoddir. U @staticmethod dekoratori yordamida e'lon qilinadi va oddiy funksiya kabi harakat qiladi, lekin mantiqan sinfga tegishli.

Sinf metodi esa @classmethod dekoratori bilan e'lon qilinadi va birinchi argument sifatida sinfni (cls) qabul qiladi. Bu metodga sinf bilan ishlash imkonini beradi, masalan, yangi nusxalar yaratish yoki sinf xususiyatlarini o'zgartirish uchun.

Misol:

class MyClass:
    @staticmethod
    def static_method():
        print("Bu statik metod")

    @classmethod
    def class_method(cls):
        print(f"Bu sinf metodidir, chaqirilgan: {cls}")

MyClass.static_method()  # Chiqish: Bu statik metod
MyClass.class_method()   # Chiqish: Bu sinf metodidir, chaqirilgan: <class '__main__.MyClass'>

Shuning uchun, funksiya sinf yoki uning nusxalarining holatiga bog'liq bo'lmaganida statik metoddan, va sinf bilan ishlash kerak bo'lsa, sinf metodidan foydalaning.