我在CPython源代码中看到了PyId_
变量的用法。我找不到它们的定义
示例包括PyId___name__
和其他。
谁或什么将它们解析成字符串?我在CPython源代码上看到了一个带有known.csv
文件的c分析器,列出了其中的大多数(但不是全部)。不确定是否相关
正如@jasonharper所说,PyId_
变量是使用_Py_IDENTIFIER
定义的,通常在源文件的顶部找到。
片段:
#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)
_Py_IDENTIFIER
使用字符串化和标记解析操作符,允许您以编程方式定义新的变量。
然后将字符串值进行实习,以提高内存效率。