我已经定义了一个类,并希望将一个实例添加到列表中。我怎么做?我试过......
class MyClass:
var1=''
var2=''
thelist = []
instance = MyClass()
instance.var1 = "hello"
instance.var2 = "world"
thelist.extend(instance)
我正在接受
TypeError: iteration over non-sequence
答案 0 :(得分:3)
您需要list.append()
,而不是list.extend()
:
thelist.append(instance)
list.extend()
需要添加序列元素,并将它们全部添加到列表中。您只有一个元素,在这种情况下,您需要使用list.append()
。
来自Python教程中的More on Lists:
list.append(x)
添加项到列表的末尾;相当于a[len(a):] = [x]
。
list.extend(L)
通过在给定列表中附加所有项来扩展列表;相当于a[len(a):] = L
。
强调我的。
演示:
>>> class MyClass:
... var1=''
... var2=''
...
>>> thelist = []
>>> instance = MyClass()
>>> instance.var1 = "hello"
>>> instance.var2 = "world"
>>> thelist.append(instance)
>>> thelist
[<__main__.MyClass instance at 0x106d19d40>]
>>> thelist[0].var1
'hello'