2015-10-30から1日間の記事一覧

__call__ で decorator を作ったときの謎

インスタンスメソッドのデコレータを作るとき、関数の代わりに __call__ を実装したクラスを使ってみると困ったことが起きる。関数によるデコレータでは、メソッドが呼び出されたオブジェクトが関数に渡ってくる。 しかし、__call__ によるデコレータでは、_…

metaclass で immutable

随分と久しぶりな投稿です。Python 2.x の自作クラスを immutable にする件。お手軽、かつ多くの記事を見かけるのが namedtuple を使う方法。 import collections Vector = collections.namedtuple('Vector', ('x', 'y')) Vector(0,0) 値を保持するだけのオ…