item系列方法

2022-06-26 02:45:10 字數 1125 閱讀 5613

通過中括號取值obj[item]觸發它的執行,無論item是否存在。

通過中括號賦值obj[key] = value觸發它的執行,無論key是否存在。

通過中括號刪除值del obj[key]觸發它的執行,無論key是否存在。

class dog:

head = 1

def __getitem__(self, item):

print('getitem執行了')

def __setitem__(self,key,value):

print('setitem執行了')

def __delitem__(self, key):

print('delitem執行了')

demu = dog()

demu['tail']

demu['tail'] = 1

del demu['tail']

getitem執行了

setitem執行了

delitem執行了

例項:定義乙個字典,即支援點取值賦值,也支援中括號取值賦值。

class mydict:

def __init__(self,**kwargs):

self.__dict__.update(kwargs)

def __getitem__(self, item):

# return getattr(self,item)

return self.__dict__[item]

def __setitem__(self, key, value):

# setattr(self,key,value)

self.__dict__[key] = value

dic = mydict(k1='v1',k2='v2')

print(dic['k1'])

dic['k3'] = 'v3'

print(dic['k3'])

print(dic.k3)

dic.k4 = 'v4'

print(dic['k4'])

v1v3

v3v4

item系列魔法方法

class foo def init self,name self.name name def getitem self,item print getitem執行 self.dict item def setitem self,key,value print setitem執行 self.dict ...

Python概念 Item系列

所謂attr系列,其實是 setattr delattr getattr 三個函式,從名字中可以看出來這是一套設定,刪除,查詢的函式,那我們來乙個乙個的看 setitem self,key,value 當對類中的某個屬性進行 賦值 時觸發的函式 只有使用字典賦值的方式時才會觸發此方法的執行 與att...

python物件導向 item系列

具體用法 class foo def getitem self,item print get return self.dict item def setitem self,key,value print set self.dict key value 等同於setattr self,key,valu...