我正在使用此处讨论的 Javascript 样式的字典。执行:
class DotDict(dict):
def __getattr__(self, attr):
return self.get(attr, None)
__setattr__= dict.__setitem__
__delattr__= dict.__delitem__
我已经使用这种结构一段时间没有问题,但最近需要一个带有连字符键的字典,如下所示:
foo = DotDict()
foo.a = 'a' #Business as usual
foo.a-b = 'ab' #Broken
分配给 foo.ab 会导致:
SyntaxError: can't assign to operator
这会中断,因为“-”被视为减号操作,而不是键名的一部分。是否有另一种方法来创建具有点式成员访问权限的字典?