python 字典键值实现 “.” 方法
简介
python 字典数据结构获取、设置键值实现 “.” 方法,类似类和类对象访问自身属性、方法。
实现
方法一
# 方法一
class AttrDict(dict):
def __init__(self, *args, **kwargs):
super(AttrDict, self).__init__(*args, **kwargs)
self.__dict__ = self
if __name__ == '__main__':
# 初始化时传入数据 + 动态添加、更新键值对
a = {'数学': 95, '语文': 89, '英语': 90}
dic = AttrDict(a)
print("----01----: ", dic)
dic.物理 = 99
print("----02----: ", dic)
dic['化学'] = 100
print("----03----: ", dic)
b = dic.语文
print("----04----: ", b)
dic.语文 = 98
print("----05----: ", dic)
# 初始化时不传入数据 + 动态添加、更新键值对
dic = AttrDict()
print("----06----: ", dic)
dic.name = 'xiaoming'
dic.age = 18
dic.sex = '男'
print("----07----: ", dic)
dic.sex = '女'
print("----08----: ", dic)
方法二
# 方法二
class AttrDict(dict):
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
if __name__ == '__main__':
# 初始化时传入数据 + 动态添加、更新键值对
a = {'数学': 95, '语文': 89, '英语': 90}
dic = AttrDict(a)
print("----01----: ", dic)
dic.物理 = 99
print("----02----: ", dic)
dic['化学'] = 100
print("----03----: ", dic)
b = dic.语文
print("----04----: ", b)
dic.语文 = 98
print("----05----: ", dic)
# 初始化时不传入数据 + 动态添加、更新键值对
dic = AttrDict()
print("----06----: ", dic)
dic.name = 'xiaoming'
dic.age = 18
dic.sex = '男'
print("----07----: ", dic)
dic.sex = '女'
print("----08----: ", dic)