1

这是我写的一些代码:

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'

我该如何解决这个问题?

4

2 回答 2

2
  1. listt是一个列表,因此,您需要在调用该项目的方法之前对其进行索引(即从列表中选择一个项目)。(例如instancelist[0].listt[0].supList)但是,我仍然不确定为什么您的列表中只有一项。

  2. 资本化问题。你想要supList.append(),没有suplist.append()

于 2013-02-25T05:31:21.957 回答
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]
于 2013-02-25T05:38:07.393 回答