list.append和类实例中列表添加的区别

时间:2013-03-30 14:17:36

标签: python list append instance

我希望我能更好地标题。
无论如何, 这是test.py

class test(object):
    tags = []
    def __init__(self):
       self.tags= self.tags + ['tag']

testA= test()
testB = test()

print testA.tags

这是输出:

  

['tag']

现在我将班级考试改为

class test(object):
    tags = []
    def __init__(self):
        self.tags.append('tag')

这是输出:

  

['tag','tag']

我预计两种情况下的第一个结果['tag']

1 个答案:

答案 0 :(得分:1)

self.tags + ['tag']创建对象。然后将其分配给self.tags

self.tags.append使用该类中的相同tags对象。所以所有对象共享相同的tags对象并附加到它。