繁体   English   中英

Python中类似字典的对象,允许设置任意属性

[英]Dictionary-like object in Python that allows setting arbitrary attributes

我想在我的代码中做什么:

myobj = <SomeBuiltinClass>()
myobj.randomattr = 1
print myobj.randomattr
...

我可以实现一个实现__setattr__ __getattr__的自定义SomeClass。 但我想知道是否已经有内置的Python类或简单的方法来做到这一点?

你可以使用一个空类:

class A(object): pass

a = A()
a.randomattr = 1

我喜欢使用束语成语。 有变化的名单和一些讨论在这里

一种解决方案是使用mock:

from mock import Mock
myobj = Mock()
myobj.randomattr = 1
print myobj.randomattr

第二种解决方案是使用namedtuple:

from collections import namedtuple
myobj = namedtuple('MyObject', '')
myobj.randomattr = 1
print myobj.randomattr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM