CPython _io_open_impl和_Py_open_impl之间的区别

问题描述

通过cpython 3中的一些底层实现,我从内置的open方法开始;快速help(open)表示它是io.open方法的别名。从那里我可以解决以下问题:

_io / _iomodule.c-> _io_open_impl-> _io / fileio.c-> _io_FileIO__init__impl

_io_open_impl接受_wfopen中定义的字符串标志,并应用_wopen中定义的宏,在_io_FileIO__init__impl中将其调用。因此,我可以合理地得出以下结论:

cpython 3中,内置的open在Windows下方使用_wopen

现在让我有些困惑的是我在 Python / fileutils.c 中发现_Py_open_impl时,我不明白它的目的;随后,同一文件定义了_Py_wfopen_Py_fopen。在存储库中搜索,我可以看到这些方法 Modules / main.c 中被调用,但很少在其他地方调用。所以...

如果_io_open_impl用于使用cpython打开文件_Py_open_impl的作用是什么?

我能推断出的最佳结论是,它用于与编译和运行解释器本身相关的代码,而不是Python语言/语法的一部分。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)