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.