Python - 使用'创建结构。'来自一串字符串

时间:2016-04-06 18:00:56

标签: python string struct

我是python的新手,想知道如何使用'来创建数据结构。' 例如,给定一个字符串数组,

mystr=['aaa', 'bbb', 'ccc']
commonstr = 'zzz'

for str in mystr
    # something like creating '.' struct
    self = __create_dot_struct_with_value__(self, str, str+commonstr)

所以结果看起来像

self.aaa = 'aaazzz'
self.bbb = 'bbbzzz'
self.ccc = 'ccczzz'

我该怎么做? 谢谢!

2 个答案:

答案 0 :(得分:3)

使用setattr

class x(object):
    pass

for item in mystr:
    setattr(x, item, item + commonstr)

现在,您可以执行x.aaa之类的操作,并让它返回aaazzz

setattr允许您动态添加对象属性。我会非常谨慎地在现有的类中使用它,除非你绝对确定它不会弄乱你的其他类,但如果你只想要一个虚拟类,这是一个很好的方法。

答案 1 :(得分:1)

from collections import namedtuple
my_class = namedtuple("a_class"," ".join(mystr))
print my_class._make([x+"zzz" for x in mystr])

可能适用于您的用例

namedtuple可能是python与struct最接近的东西(在C / C ++意义上)