python - 如何获取内置模块上重写内置方法的原始版本?

标签 python python-3.x

在代码中的任意位置,都存在:

builtins.open = my_open

我无法更改该代码,但它已损坏。我需要确保任何 open 调用,包括那些来自其他内置库的调用都使用原始的 open。我需要的是这样的:

orig_open = get_original_method("open")
builtins.open = orig_open

在 Javascript 中,我通常通过创建新的窗口框架并从那里获取方法来解决该问题。如何在Python中做到这一点?

最佳答案

如果这里的问题只是 open 函数,您随时可以获取 io.open这是它的别名:

import io
builtins.open = io.open

我不知道有任何通用的解决方案,即使存在,我也不会感到惊讶。

关于python - 如何获取内置模块上重写内置方法的原始版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409575/

相关文章:

python - 根据日期选择具有日期时间索引的 DataFrame 行

python - 如何有效地比较具有相同 x 和 y 值的所有行的 z 值?

python-3.x - 您好,我编写了一段代码来使用对流层创建 CloudFormation 模板,但运行代码时出现语法错误

python - 在 if-else 子句的 else 命令中执行 "nothing"

python - 使用 pexpect (python) 时 SFTP 未完成文件传输

python - 在 matplotlib 中的极坐标图上移动径向刻度标签

python - 我需要 Python 方面的帮助 - 在函数内搜索

python - 装饰器可以修改包装函数的函数签名中的类型提示吗?

python - 对彼此链接的 2 个列表进行排序

Python 3.x - 如何让我的程序在无效时不计算部分?