Python之__getitem__、__getattr__、__setitem__ 、__setitem__ 的區別

class LoggedMappingMixin:
    __slots__ = ()  # 混入類都沒有實例變量,因爲直接實例化混入類沒有任何意義
    """
    __getitem__(self,key):返回鍵對應的值。
    __setitem__(self,key,value):設置給定鍵的值
    __delitem__(self,key):刪除給定鍵對應的元素。
    
    
    __getattr__內置使用點號獲取實例屬性屬性如 s.name,自調用__getattr__
    __setattr__設置類實例屬性 如s.name='tom',自調用__setattr__
    __getitem__ 使用[]獲取實例屬性 如s['name'],自調用__getitem__
    __setitem__ 使用[]設置實例屬性如 s['name'] = 'tom' ,自調用__setitem__
    __dict__ 爲參數字典

    """

    def __getitem__(self, key):
        print('Getting ' + str(key))
        return super().__getitem__(key)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章