首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python标准库中类似JavaScript的对象?

Python标准库中类似JavaScript的对象?
EN

Stack Overflow用户
提问于 2019-02-20 06:54:13
回答 2查看 0关注 0票数 0

我想在Python中使用一个简单的“转储”对象,其行为类似于JavaScript对象(即,其成员可以使用.member或使用['member'])。

通常我会把它放在以下的顶部.py

代码语言:javascript
复制
class DumbObject(dict):
    def __getattr__(self, attr):
        return self[attr]
    def __stattr__(self, attr, value):
        self[attr] = value

但这有点蹩脚,并且该实现至少存在一个错误(尽管我不记得它是什么)。

那么,标准库中有类似的东西吗?

并且,为了记录,简单的实例化object不起作用:

代码语言:javascript
复制
>>> obj = object()
>>> obj.airspeed = 42
Traceback(最近一次调用最后一次):
  文件“”,第1行,in 
AttributeError:'object'对象没有属性'airspeed'

编辑 :我不是想用Python编写JavaScript。我经常发现我想要的地方就是在我还在试验的时候:我有一些“东西”的集合,这些东西不太适合放入字典,但也不适合拥有自己的类。

EN

回答 2

Stack Overflow用户

发布于 2019-02-20 14:54:59

你可能感兴趣 :collections.namedtuple

票数 0
EN

Stack Overflow用户

发布于 2019-02-20 16:27:51

你可以试试attrdict:

代码语言:javascript
复制
class attrdict(dict):
    def __init__(self, *args, **kwargs):
        dict.__init__(self, *args, **kwargs)
        self.__dict__ = self

a = attrdict(x=1, y=2)
print a.x, a.y
print a['x'], a['y']

b = attrdict()
b.x, b.y  = 1, 2
print b.x, b.y
print b['x'], b['y']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008960

复制
相关文章

相似问题

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