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

时间:2010-02-28 10:52:51

标签: python dictionary attributes

我想在代码中做些什么:

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

我可以实现一个实现__setattr__ __getattr__的自定义SomeClass。 但我想知道是否已有内置的Python类或简单的方法来执行此操作?

3 个答案:

答案 0 :(得分:8)

你可以使用一个空类:

class A(object): pass

a = A()
a.randomattr = 1

答案 1 :(得分:2)

我喜欢使用束语成语。有变化列表和一些讨论here

答案 2 :(得分:0)

一种解决方案是使用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