#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'])