以下是我写的一些代码:
class supClass:
supList=[]
def __init__(self):
""
class MyClass:
listt=[]
code=None
def __init__(self):
""
instancelist = [ MyClass() for i in range(4)]
for i in range(0,4):
instancelist[i].listt.append(supClass())
instancelist[i].listt.suplist.append(i)
instancelist[i].code=12
for i in range(4):
print instancelist[0].listt.suplist
它会产生以下错误:
File "/home/aj/workspace/PythonTutorials/basics/builtFun.py", line 21, in <module>
instancelist[i].listt.suplist.append(i)
AttributeError: 'list' object has no attribute 'suplist'
我该如何解决这个问题?
答案 0 :(得分:2)
listt
是一个列表,因此,您需要在调用该项的方法之前对其进行索引(即从列表中选择项目)。 (例如instancelist[0].listt[0].supList
)但是我仍然不确定为什么你的列表中只有一个项目。
资本化很重要。您想要supList.append()
,而不是suplist.append()
。
答案 1 :(得分:1)
我很难理解您的代码尝试实现的目标,但这会修复您的语法错误:
for i in range(4):
instancelist[i].listt.append(supClass())
# listt is a list object. To access the last item, use [-1].
# supList has a capital L.
instancelist[i].listt[-1].supList.append(i)
instancelist[i].code = 12
for i in range(4):
# It looks like you want to print the supList for each supClass item in list:
print [s.supList for s in instancelist[0].listt]