【发布时间】:2019-03-26 16:21:01
【问题描述】:
我有一个包含几十个子包/模块的 Python 包。几乎每个模块都使用 open 内置 Python 函数。我已经编写了一个自己的文件打开函数实现,并希望将我在包模块中的所有 open 调用“重定向”到 my_open 函数。
我知道可以在模块顶部写入open = my_open_file 以隐藏模块内的open,但这意味着编辑每个模块。或者,将open = my_open_file 放在包的__init__.py 中,然后执行from package_name import open,这也意味着向每个模块添加一行代码。
是否可以在一个地方为包范围定义my_open_file 函数?或者在每个模块中添加一行代码是我唯一的选择?
【问题讨论】:
标签: python package built-in monkeypatching shadowing