gpt4 book ai didi

python - 如何扩展/修补现有模块或包?

转载 作者:行者123 更新时间:2023-12-01 06:17:18 25 4
gpt4 key购买 nike

我想扩展名为 OpenERP 的 Python 应用程序的一些特定于区域设置的功能。我所需要的只是实现一个第三方 module.function,每次 OpenERP 调用 locale.setlocale() 函数时都会调用该函数,而无需更改 OpenERP 或 locale 模块源代码。

我能想到的唯一方法是在主应用程序包目录中提供一个名为 locale.py 的模块,但这似乎是一个非Pythonic的解决方法。

最佳答案

查找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)

关于python - 如何扩展/修补现有模块或包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com