是否可以直接检查内部字符串池?

问题描述 投票:3回答:1

在python中是否有可能检查并查看内部字符串的字符串池?我熟悉sys.intern()函数,但是有没有办法检查那里的数据?

python python-3.x string-interning
1个回答
0
投票

没有枚举内部字符串池的机制。请参见源代码中的模块Objects / unicodeobject.cPython / sysmodule.c。具体来说,用于保存插入字符串的var的定义:static PyObject *interned = NULL;

从理论上讲,信息可能会被公开,但这不是因为它的用途非常有限。部分原因是大多数被扣留的弦是“凡人”的​​。即,当不再引用它们时,它们将从嵌入的字符串缓存中删除。公开缓存字符串集的值非常接近于零,这使得很难证明这样做的合理性。尤其是因为这样做将需要长时间保存GIL或复制内联字符串字典,因此可以对其进行迭代而不会影响该缓存的其他并发操作。

© www.soinside.com 2019 - 2024. All rights reserved.