因为你定义的时候把ver定义成类全局变量了,所以类的实例会共享这个变量,如果想各自拥有自己的ver,应该像下面这样:
class Surface:
def __init__(self):
self.ver = []
for i in range(5):
s = Surface()
s.ver.append(i)
print s.ver
你可以这样试:
var=[]
for i in range(5):
var.append(i)
print var
for循环每次循环一次是对列表var进行一次append,然后进行一次print所以你会看到:
[0]
[0,1]
............
我不知道你为什么会想成是
[0]
[1]
...
这样的输出结果。
而且每次被定义属性后的类也是新的啊。怎么不是新的?
PS:
你看到哈:
开始时Surface中的var是[]
当i是0时surface中的var是[0]
这时实例S继承surface中的var属性,也成了[0]
当i 是1时s原本的var本来就是[0],现在又append(1),你说s中的属性是多少?