例如,假设我有一个具有 5 个属性的对象。我将如何创建 5 个列表,每个列表对应于对象的一个属性,并且列表的名称必须与这些属性匹配。我尝试了以下方法,但它给了我一个语法错误:
for x in A.attributes
str(x) = [];
您需要使用 aa 字典:
d = {}
for x in A.attributes
d[x] = [];
像这样:
class A(object):
pass
A.a1=[]
这增加了一个类属性。
对于实例属性:
class A(object):
pass
t=A()
t.a1=[]
或者,如果属性已经存在于您的对象实例中:
for attr, value in [(a,v) for a,v in t.__dict__.iteritems()]:
t.attr=[]
回答OP的原始问题可以做...
for x in A.attributes
globals()[x] = []
但正如 Rohit 建议的那样,你想要,不是dict
更好,或者 OP 可能想要一个namedtuple
.