クラス変数とインスタンス変数

間違いやすいPythonのクラス変数とインスタンス変数 - 北海道苫小牧市出身の初老PGが書くブログ
確かに間違えやすい。というか混乱してきたw

クラス間で共有しない変数ならself.hogeみたいな代入がいいってことなのかな。でもinitでself.hogeしてるならインスタンスになると思うのだが。

>>> class Test:
        # クラス変数
...     hoge = 100
...     def __init__(self):
            # インスタンス変数
...         self.hoge = 200
...         
...     
... 
>>> Test()
<__main__.Test instance at 0x976306c>
>>> a = Test()
>>> a.hoge
200
>>> Test.hoge
100
>>> a.__dict__
{'hoge': 200}
>>> Test.__dict__
{'__module__': '__main__', '__doc__': None, '__init__': <function __init__ at 0x
978795c>, 'hoge': 100}