__setitem__() __getitem__() __delitem__()
Posted long-holiday
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__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‘])
以上是关于__setitem__() __getitem__() __delitem__()的主要内容,如果未能解决你的问题,请参考以下文章
__getitem__ __setitem__ __delitem__ 使用
python学习之__getitem__,__setitem__,__delitem__
python - __setitem__/__getitem__/__delitem__类的内置方法
__getitem__\__setitem__\__delitem__