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

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

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

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

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

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

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

将会引用

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

Stack Overflow用户

发布于 2016-12-22 10:29:08

Fabric有一个非常好的,最小的implementation。将其扩展为允许嵌套访问,我们可以使用defaultdict,结果如下所示:

代码语言:javascript
复制
from collections import defaultdict

class AttributeDict(defaultdict):
    def __init__(self):
        super(AttributeDict, self).__init__(AttributeDict)

    def __getattr__(self, key):
        try:
            return self[key]
        except KeyError:
            raise AttributeError(key)

    def __setattr__(self, key, value):
        self[key] = value

如下所示使用它:

代码语言:javascript
复制
keys = AttributeDict()
keys.abc.xyz.x = 123
keys.abc.xyz.a.b.c = 234

这对库格尔的回答“从字典派生并实现__getattr____setattr____”进行了一点阐述。现在你知道该怎么做了!

票数 27
EN
查看全部 34 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2352181

复制
相关文章

相似问题

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