Python 如何扩展/修补现有模块或包?
我想扩展名为OpenERP的python应用程序的一些特定于语言环境的特性。我所需要的只是实现一个第三方module.function,它将在每次OpenERP调用locale.setlocale()函数时调用,而不更改OpenERP和locale模块的源代码 我能想象的唯一方法是在主应用程序包dir中提供一个名为locale.py的模块,但这似乎是一个非Python解决方案。查找。这不是最优雅的技巧,但有时它是唯一的选择 在您的情况下,您可以用自己的函数替换Python 如何扩展/修补现有模块或包?,python,locale,extend,Python,Locale,Extend,我想扩展名为OpenERP的python应用程序的一些特定于语言环境的特性。我所需要的只是实现一个第三方module.function,它将在每次OpenERP调用locale.setlocale()函数时调用,而不更改OpenERP和locale模块的源代码 我能想象的唯一方法是在主应用程序包dir中提供一个名为locale.py的模块,但这似乎是一个非Python解决方案。查找。这不是最优雅的技巧,但有时它是唯一的选择 在您的情况下,您可以用自己的函数替换locale.setlocale()
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)