私は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 = []
それも機能しますが、デフォルトで同じリストを指している理由がわかりません。
ps。私はinitを書くことがうまくいくことを知っています。
class line :
name = "abc"
def changename(self, name) :
self.name = name
line1 = line()
line2 = line()
line1.changename(123)
print line2.name
しかし、上記のコードは出力します"abc"
ですから、なぜ同じ種類の宣言がタイプによって異なるのか理解できません。