list
次のコードでは、構築された各オブジェクトに固有の変数になると思いました。クラス変数として共有されるのはなぜですか?
01 class Thing(object):
02 def __init__(self, my_list=[]):
03 self.list = my_list
04 return
05
06 thing1=Thing()
07 thing2=Thing()
08 thing1.list.append(1)
09 print thing2.list
id(thing1)
は とは異なりid(things2)
ますがid(thing1.list)
、 と同じid(thing2.list)
です。
3行目で使用するself.list = []
と、属性はそれぞれに固有Thing
です。6行目で使用thing1 = Thing(my_list=[])
し、7行目でも同様に使用すると、属性はそれぞれに固有Thing
です。
Canopy 環境で Python 2.7 を実行しています。