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.