タグ

2011年4月20日のブックマーク (1件)

  • Pythonのクラス変数とインスタンス変数の違い - logging.info(self)

    動機 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()

    Pythonのクラス変数とインスタンス変数の違い - logging.info(self)
    shimizukawa
    shimizukawa 2011/04/20
    Hoge.__dict__と hoge = Hoge() とやって作った hoge.__dict__ を観察すると面白いと思いますよ。さらに継承したクラスの場合なども観察してみてください。