python使用点操作符访问字典(dict)数据

2022-05-03 00:00:00 数据 操作 字典

平时访问字典使用类似于:dict['name']的方式,如果能通过dict.name的方式访问会更方便,下面的代码自定义了一个类提供了这种方法。

"""
皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/30
功能描述:python使用点操作符访问字典(dict)数据
"""

class DottableDict(dict):

    def __init__(self, *args, **kwargs):
        dict.__init__(self, *args, **kwargs)
        self.__dict__ = self

    def allowDotting(self, state=True):
        if state:
            self.__dict__ = self
        else:
            self.__dict__ = dict()

d = DottableDict()
d.allowDotting()
d.foo = 'pidancode.com'
print(d['foo'])
print(d.foo)

输出结果:
pidancode.com
pidancode.com

# 禁止使用点操作
d.allowDotting(state=False)
print(d['foo'])
print(d.foo)

当关掉点操作后以上代码会报错

以上代码在Python3.9环境下测试通过。

相关文章