http://python.matrix.jp/columns/misunderstanding.html#self-oop