如何通过点“.”访问 Python 字典成员?
例如,我不想写 mydict['val']
,而是写 mydict.val
。
我也想以这种方式访问嵌套的字典。例如
mydict.mydict2.val
会指
mydict = { 'mydict2': { 'val': ... } }
原文由 bodacydo 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何通过点“.”访问 Python 字典成员?
例如,我不想写 mydict['val']
,而是写 mydict.val
。
我也想以这种方式访问嵌套的字典。例如
mydict.mydict2.val
会指
mydict = { 'mydict2': { 'val': ... } }
原文由 bodacydo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直将它保存在一个 util 文件中。您也可以将它用作您自己的类的混入。
class dotdict(dict):
"""dot.notation access to dictionary attributes"""
__getattr__ = dict.get
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
mydict = {'val':'it works'}
nested_dict = {'val':'nested works too'}
mydict = dotdict(mydict)
mydict.val
# 'it works'
mydict.nested = dotdict(nested_dict)
mydict.nested.val
# 'nested works too'
原文由 derek73 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答987 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
你可以使用我刚刚创建的这个类来做到这一点。使用此类,您可以像使用另一个字典(包括 json 序列化)或点符号一样使用
Map
对象。希望对您有所帮助:使用示例: