格闘。

Pythonと格闘中。
デコレータでクラスメソッドを修飾したいけど、デコレータ中で渡された関数(メソッド)の属するクラスを取得したい。


でも出来ない…。


無理っぽいので…、デコレータではクラスの属性にデータを追加するまでにして、インスタンスの初期化時にそれを見てやりたい処理をするように作った。でもでも、やりたい処理が分割しているのが、ナンカイヤ…。出来れば「クラス定義」として完結させたい。誰か何か知ってたら、教えて♪
★やりたい処理は、デコレータ関数内でクラスを受け取り、そのクラスの継承元クラスを全て取得(inspect.getmro)。全ての継承元クラスの情報(定義)を参照して、現在のクラスを再定義する、といった処理。



もう一つ、Python の?余談。
前から、複数の個別のリクエストに渡って、前のリクエストの結果が影響してるみたいな時があって、「Python の挙動ってなんかおかしいよね〜」とかって思ってたら、それは実は GAE の仕業でした。(*・ω・*)
http://code.google.com/intl/ja/appengine/docs/python/runtime.html#App_Caching


モジュールやスクリプトの読み込みをキャッシュするなんて、そんな、ビックリです。一長一短あるよね。短が出ないように、工夫しないといけなかったり。そのキャッシュに依存してしまいそうになったり。…というか、キャッシュがあるのにここで自前でキャッシュせんでも…とかいう、へんてこなジレンマに陥る自分にヤレヤレです。