Pythonは継承ができる.

ところがこれは実際には,MROチェーンが繋がっているだけのようだ.

つまり自己破壊型の場合,親クラスのクラス変数を上書きしてしまうことになる.

# coding:utf-8

class A(object):
    a_dict = {1:"a"}
print A.a_dict

class B(A):
    a_dict = A.a_dict.copy()
    a_dict.update({2:"b"})

print B.a_dict
print A.a_dict

WS000119

お望みどおり,簡単に破壊できた.

リファレンス代入なんだろうねぇ?

リストなら "+" で繋げば良さそうだけど,辞書に追加して,かつ,新しい辞書を作るってどうやるの?

一番簡単には copy() すればいいけど,これで合ってるの?正確にはdeepcopy() だけど,それでOK?

http://docs.python.org/library/copy.html#copy.deepcopy

	a_dict = A.a_dict.copy()

WS000120

他の基礎型が加算(__add__())が使えるのに,dictだけ使えないのは不思議だなぁ.

defaultdict とか使えばできるのかしらん?