Python中如何调用被覆盖的内置open函数?
解决自定义
open函数覆盖内置函数的问题 当代码中定义了同名的open函数后,直接调用open()会优先执行自定义版本。要调用Python原生的内置open函数,有两种可靠方法:
方法1:直接调用__builtins__模块中的open
Python所有内置函数都存储在__builtins__模块中,直接通过该模块即可访问原生open:
with __builtins__.open(filename, "a") as file: file.write(mystr)
方法2:从io模块导入原生open
Python 3的内置open本质是io.open的别名,你可以从io模块导入并指定别名,避免和自定义函数冲突:
from io import open as builtin_open # 后续使用别名调用原生函数 with builtin_open(filename, "a") as file: file.write(mystr)
这两种方法都无需修改现有自定义open函数,不会影响其他依赖该函数的代码。
内容的提问来源于stack exchange,提问作者Raul Quinzani
相关产品推荐
相关产品推荐

