小弟今天对 interning 还有 Python 中 str 类型的实现比较感兴趣
现在有一个问题,就是我看到了 PyUnicodeObject 这个相关的文件有一个函数 PyUnicode_InternInPlace,我看了下这个函数主要应该是做 interning 的,但是是否我们平常赋值 str 类型时就会调用这个函数呢?
还有一个点我也不太确定,就是 str 类型是不是在现阶段 (python3.3 之后) 底层实现就是 PyUnicdoeObject 了呢,这个我也暂时没有找到依据。看到了一个 pep 文件
PyUnicodeObject 主要内容在 Include/unicodeobject.h 和 Objects/unicodeobject.c 两个文件
然后 PyUnicode_InternInPlace 定义在这里。