1

OpenERP という名前の Python アプリケーションのロケール固有の機能を拡張したいと考えています。OpenERPもlocaleモジュールのソースコードも変更せずに、OpenERPが locale.setlocale() 関数を呼び出すたびに呼び出されるサードパーティの module.function を実装するだけです。

私が想像できる唯一の方法は、メイン アプリケーション パッケージ dir 内に locale.py という名前のモジュールを提供することですが、それは非 Pythonic 回避策のようです。

4

1 に答える 1

2

Monkey Patchingを参照してください。これは最も洗練された手法ではありませんが、唯一の選択肢になる場合もあります。

あなたの場合、あなたが望むことをlocale.setlocale()何でもする独自の関数を置き換えることができます。次のようになります。

import locale

original_setlocale = locale.setlocale

def my_setlocale(category, locale=None):
    # Do anything you want
    # optionally call original function
    original_setlocale(category, locale)
于 2010-03-31T10:18:10.750 に答える