動機 Pythonの言語リファレンスとか他の人のコードみてたらクラス変数とインスタンス変数の違いがよくわからなくなったのでメモ。 というか、http://d.hatena.ne.jp/Ponsuke/20090128/1233115400にインスパイアされて書きました。 今まで 自分が最初に触ったオブジェクト指向言語はJavaで、そっちの概念を引きずったままPythonをやり始めたので当然クラス変数とインスタンス変数は別々に宣言するものなんだろという考えていた。 つまり class Hoge(object): FOO = int() とすればクラス変数FOOが宣言されたことになりインスタンス変数は宣言されてないものだと思ってた。 そしてPythonでインスタンス変数を使うには class Hoge(object): def __init__(self): self.FOO = int()