更新:在Python 2.6及更高版本中,请考虑namedtuple数据结构是否满足你的需求:
>>> from collections import namedtuple>>> MyStruct = namedtuple('MyStruct', 'a b d')>>> s = MyStruct(a=1, b={'c': 2}, d=['hi'])>>> sMyStruct(a=1, b={'c': 2}, d=['hi'])>>> s.a1>>> s.b{'c': 2}>>> s.cTraceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: 'MyStruct' object has no attribute 'c'>>> s.d['hi']
备选方案(原始答案内容)为:
class Struct: def __init__(self, **entries): self.__dict__.update(entries)
然后,你可以使用:
>>> args = {'a': 1, 'b': 2}>>> s = Struct(**args)>>> s<__main__.Struct instance at 0x01D6A738>>>> s.a1>>> s.b2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)