将类实例变量添加到python中的列表中

时间:2015-02-20 21:40:46

标签: python list

我已经定义了一个类,并希望将一个实例添加到列表中。我怎么做?我试过......

class MyClass:
    var1=''
    var2=''

thelist = []
instance = MyClass()
instance.var1 = "hello"
instance.var2 = "world"
thelist.extend(instance)

我正在接受

TypeError: iteration over non-sequence

1 个答案:

答案 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'