我是 python 新手,这让我很困惑。
我想写类似的东西
class line :
points = []
def add(self, point) :
self.points.append(point)
line1 = line()
line2 = line()
line1.add("Some point")
print line2.points
输出:['Some point']
结果就像它们引用了同一个列表。
但我确实想要一个对象成员而不是类成员。
我试过了,如果 points 是 int 或其他一些简单的类型,它可以正常工作。
此外,我知道如果我写
def __init__(self) :
self.points = []
它也可以工作,但我不明白为什么他们默认指向同一个列表。
附言。我知道写一个 init 会起作用。
class line :
name = "abc"
def changename(self, name) :
self.name = name
line1 = line()
line2 = line()
line1.changename(123)
print line2.name
但是上面的代码输出"abc"
所以我不明白为什么同一种声明因类型而异。