Pythonのお勉強 Part39
■ このスレッドは過去ログ倉庫に格納されています
0604デフォルトの名無しさん
2010/10/23(土) 10:57:32うん
もっと近いのは参照(リファレンス)みたいなもの(C++的な意味で)
もちろん
a = copy.copy(foo)
b = copy.deepcopy(bar)
でいわゆる「値をコピーして代入」=「値をコピーして新しいラベルを作成」も可能
ついでに2番目は説明が面倒なので対策だけ書くと
・mutableな要素はインスタンスのアトリビュートで生成する(一般的には def __init__(self): とかで・・・)
・(予期せぬ結果を防ぐため)クラスのアトリビュート(クラス変数)にmutable(変更可)な要素を指定してはならない
>>> class Hoge(object):
... foo = []
...
>>> hoge1 = Hoge()
>>> hoge1.foo.append("I'm hoge1.")
>>> hoge2 = Hoge()
>>> hoge2.foo
["I'm hoge1."]
こんな事が起こっちゃう
■ このスレッドは過去ログ倉庫に格納されています