1. 程式人生 > >__setitem__() __getitem__() __delitem__()

__setitem__() __getitem__() __delitem__()

#item系列 和物件使用[]訪問值有聯絡
#obj={'k':'v'}
#print(obj)
#print(obj['k'])

class B:
    def __getitem__(self, item):
        #print('執行我了',item)
        #return 'bbb'
        return getattr(self,item)
    #getattr(object, name[,default])
    #getattr() 函式用於返回一個物件屬性值。
    #object -- 物件。
    #name -- 字串,物件屬性。
#default -- 預設返回值,如果不提供該引數,在沒有對應屬性時,將觸發 AttributeError。 #獲取物件object的屬性或者方法 def __setitem__(self, key, value): #print(key,value) setattr(self,key,value) # #object -- 物件。 #name -- 字串,物件屬性。 #value -- 屬性值。 def __delitem__(self, key): print(key)#
這樣並沒有真的刪除b['k'] delattr(self,key)#delattr 函式用於刪除屬性。 # #object -- 物件。 #name -- 必須是物件的屬性。 b=B() b['k']='value'#物件['鍵']=值 會呼叫__setitem__()方法 print(b.k) print(b['k'])#物件['鍵']呼叫__getitem__()方法 #現在要刪除b['k'] del b['k']#del 物件['鍵']呼叫__delitem__()方法 print(b['k'])