Python進階-----類的內置item屬性方法


類的內置item相關方法只有在通過字典key操作才會觸發
而通過點的方式來操作,則觸發attr相關方法

class Foo:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def __getitem__(self, item):
        print('執行getitem')
        return self.__dict__[item]

    def __setitem__(self, key, value):
        print('執行setitem')
        self.__dict__[key] = value

    def __delitem__(self, key):
        print('執行delitem')
        self.__dict__.pop(key)

f = Foo('Jerry',18)

#獲取屬性,通過字典key的形式,其實是操作底層__dict__[key]來獲取相應的值
print(f['name'])   #執行getitem    Jerry

#設置(修改)屬性,也是通過字典key的形式,其實是操作底層__dict__[key] = value 來設置(修改)相應的值
f['name'] = 'Meanwey'   #執行setitem
print(f.__dict__)       #{'name': 'Meanwey', 'age': 18}

#刪除屬性,通過字典key的形式,其實是操作底層__dict__.pop(key)來刪除相應的屬性和值
del f['age']            #執行delitem
print(f.__dict__)       #{'name': 'Meanwey'}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM