首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“如何使用点”。访问字典的成员?

“如何使用点”。访问字典的成员?
EN

Stack Overflow用户
提问于 2010-03-01 02:51:42
回答 25查看 217.5K关注 0票数 374

如何使Python字典成员可通过点".“访问?

例如,我想编写mydict.val,而不是编写mydict['val']

另外,我想以这种方式访问嵌套的字典。例如

代码语言:javascript
复制
mydict.mydict2.val 

将会引用

代码语言:javascript
复制
mydict = { 'mydict2': { 'val': ... } }
EN

回答 25

Stack Overflow用户

发布于 2014-05-16 06:29:40

我一直把它放在一个util文件中。你也可以在你自己的类中使用它作为混入。

代码语言:javascript
复制
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'
票数 377
EN

Stack Overflow用户

发布于 2010-03-01 02:55:04

从dict派生,并实现__getattr____setattr__

或者,您可以使用非常类似的Bunch

我不认为monkeypatch内置的dict类是可能的。

票数 60
EN

Stack Overflow用户

发布于 2019-12-26 01:57:14

使用SimpleNamespace

代码语言:javascript
复制
>>> from types import SimpleNamespace   
>>> d = dict(x=[1, 2], y=['a', 'b'])
>>> ns = SimpleNamespace(**d)
>>> ns.x
[1, 2]
>>> ns
namespace(x=[1, 2], y=['a', 'b'])
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2352181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档