理解 Python 字符串实习
字符串实习是一种机制,其中具有相同内容的多个字符串共享内存中的同一对象。 Python 使用字符串驻留来优化字符串处理并减少内存使用。
编译时字符串驻留
前两个示例演示了编译时字符串驻留。两个字符串(“string”和“strin”“g”)在编译时都会被评估并转换为相同的不可变字符串对象。这会导致两个字符串等效并占用相同的内存地址。
运行时字符串求值
但是,第三个示例涉及运行时字符串连接。与编译时串联不同,此操作的结果不会自动保留。因此,“s1“g”和“string”占用不同的内存地址,导致比较“s1“g”是“string”返回False。
控制字符串实习
您可以使用 sys.intern() 手动实习字符串。通过这样做,您可以确保您传递的字符串文字与现有字符串值(如果存在)是相同的对象。
实现详细信息
字符串驻留行为取决于具体的Python实现。 CPython(最常见的 Python 实现)实习编译时常量,但不实习运行时表达式的结果。此说明适用于 CPython 3.9.0 及更高版本。
注意: 当使用“is”与字符串文字来比较它们是否相等时,Python 3.9 会发出警告。相反,请使用“==”来达到此目的。
以上是Python 是否在编译时或运行时保留字符串,这对比较有何影响?的详细内容。更多信息请关注PHP中文网其他相关文章!