クラス: インスタンスのデータ属性

謎な挙動にハマリました。
のでメモ。


こんなクラスがあったとします。

class Hoge():
  hoge = []
  def __init__(self, str):
    self.hoge.append(str)

そして
次のようなことをしました。

Hoge('hoge')
bar = Hoge('bar')

ここで問題。
bar.hogeの中身はどうなっているでしょう。

  1. ['bar']
  2. ['hoge', 'bar']

なぜ2なのかまったく意味がわかりません。

やっぱなんか一冊pythonの本読んだ方がいいかや・・・。