Sobes.tech
Junior — Middle

Python'da statik usul va sinf usulidan foydalanish o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Python'da statik metod, avtomatik tarzda sinf nusxasi (self) yoki sinf (cls) ni birinchi argument sifatida qabul qilmaydigan metoddir. U @staticmethod dekoratori yordamida e'lon qilinadi va oddiy funksiya kabi ishlaydi, 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.

Misol:

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

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

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

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