__getattribute__(self, ) — sinfning ihtiyoriy hususiyatiga murojaat boʻlganda ishga tushadi. Bu metodning ichida sinf hususiyatlariga murojaat qilinsa, cheksiz tsikl roʻy beradi. Buning oldini olish uchun object obyektining __getattribute__() metodini chaqirish va bu metodning ichida hususiyat qiymatini qaytarish yoki AttributeError istisnoli vaziyatini ishga tushirish lozim:
class Namuna:
def __init__(self) :
self.i = 20
def __getattribute__(self, attr):
print(" _getattribute_ () metodiga murojaat qilindi")
return object.__getattribute__(self, attr) # faqat shunday!!!
c = Namuna()
print (c. i) # chiqaradi: _getattribute_ () metodiga murojaat qilindi 20
Do'stlaringiz bilan baham: |