【发布时间】:2016-06-18 18:17:05
【问题描述】:
在 python 3.5 中,是否可以预测我们何时会得到一个实习字符串或何时会得到一个副本?在阅读了有关此问题的一些 Stack Overflow 答案后,我发现 this one 最有帮助,但仍然不全面。比我看的Python docs,但是默认不保证实习
通常,Python程序中使用的名称是自动interned,用于保存模块、类或实例属性的字典有interned键。
所以,我的问题是关于内部 intern() 条件,即决策(是否实习字符串文字):为什么同一段代码在一个系统上工作而不是在另一个系统上工作,以及作者制定了哪些规则mentioned topic 上的答案意思是说
发生这种情况的规则非常复杂
【问题讨论】:
-
@erip 我相信 OP 已经意识到了这一点。通过样板后,这个问题似乎是在询问实习规则。
-
如果你真的想知道实现上的差异,指定两个系统上安装的 Python 版本可能是有意义的。
-
@wim 我不想忘记,我想学习和理解。
-
@wim 我很乐意,但我对 Python 的经验不是很高,所以欢迎你自己编辑你看到的问题
-
唯一的规则是
intern的返回值是interned。其他一切都是实现细节的泥潭,不一致,因为保持一致毫无意义。
标签: string cpython string-interning