Python怒られ日記 vol.1 クラスのコンストラクタにデフォルト引数を与えるとき
class A:
def __init__ ( var1 = 0, var2 = [] , var3 = [0,0,0]):
self.var1 = var1
self.var2 = var2
self.var3 = var3
としたとき,Aを複数newした時にvar2やvar3はnewされず同じObjectを参照する.参照周りのことをちょっと分かる人ならそれはそうなんだけどミスった.
class A:
def __init__ (var1 = 0, var2 = None, var3 = None):
self.var1 = var1
self.var2 = [ ] if var2 is None else var2
self.var3 = [0,0,0] if var3 is None else var3
とすれば解決.