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)ただし、アイテムが1つしかないリストがある理由はまだわかりません。

  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 に答える