如何PyId_变量解析在CPython?



我在CPython源代码中看到了PyId_变量的用法。我找不到它们的定义

示例包括PyId___name__和其他。

谁或什么将它们解析成字符串?我在CPython源代码上看到了一个带有known.csv文件的c分析器,列出了其中的大多数(但不是全部)。不确定是否相关

正如@jasonharper所说,PyId_变量是使用_Py_IDENTIFIER定义的,通常在源文件的顶部找到。

片段:

#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)

_Py_IDENTIFIER使用字符串化和标记解析操作符,允许您以编程方式定义新的变量。

然后将字符串值进行实习,以提高内存效率。

最新更新