一、__getitem__(self, item)
使用这个方法最大的印象就是调用对象的属性可以像字典取值一样使用中括号['key']
使用中括号对对象中的属性进行取值、赋值或者删除时,
会自动触发对应的__getitem__、__setitem__、__delitem__方法
class Student(object):
def __init__(self, user_dic):
self.value= user_dic 对象属性
def __getitem__(self, item):
return self.value[item] getitem方法
user_dic = {'zhangsan': 14, 'lisi': 15, 'wanger': 16, 'mazi':17}
student = Student(user_dic)
print(student['lisi'])
15
初始化几个属性并不重要,关键是看 __getitem__
的返回值。
二、字典获取__getitem__、设置__setitem__、删除__delitem__数据
2020-12-18更新
class Student(object):
def __init__(self, user_dic ):
self.value = user_dic
def __getitem__(self, item):
print ('__getitem__', item)
return self.value[item]
def __setitem__(self, key, value):
print ('__setitem__', key, value)
self.value[key] = value
def __delitem__(self, key):
print ('__delitem__', key)
del self.value[key]
def __len__(self):
return len(self.value)
user_dic = {'zhangsan': 14, 'lisi': 15, 'wanger': 16, 'mazi':17}
stu = Student(user_dic)
print (stu['lisi']) 取值数据
stu['zhaoliu'] = 32 设置数据
print(user_dic)
del stu['lisi'] 删除数据
print (len(user_dic)) 返回数据长度
print(user_dic)