[英]Dictionary-like object in Python that allows setting arbitrary attributes
What I want to do in my code: 我想在我的代码中做什么:
myobj = <SomeBuiltinClass>()
myobj.randomattr = 1
print myobj.randomattr
...
I can implement a custom SomeClass that implements __setattr__
__getattr__
. 我可以实现一个实现
__setattr__
__getattr__
的自定义SomeClass。 But I wonder if there is already a built-in Python class or simple way to do this? 但我想知道是否已经有内置的Python类或简单的方法来做到这一点?
You can just use an empty class: 你可以使用一个空类:
class A(object): pass
a = A()
a.randomattr = 1
One solution is to use mock's: 一种解决方案是使用mock:
from mock import Mock
myobj = Mock()
myobj.randomattr = 1
print myobj.randomattr
Second solution is to use namedtuple: 第二种解决方案是使用namedtuple:
from collections import namedtuple
myobj = namedtuple('MyObject', '')
myobj.randomattr = 1
print myobj.randomattr
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.