0

我希望我能更好地为这个问题命名。
无论如何,这里是 test.py

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

testA= test()
testB = test()

print testA.tags

这是输出:

['标签']

现在我将班级测试更改为

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

这是输出:

['标签','标签']

在这两种情况下,我都期待第一个结果['tag']

4

1 回答 1

1

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

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

于 2013-03-30T14:22:43.097 回答