Python 中的 'is' 关键字是如何实现的?
在 Python 中,'is' 关键字用于测试对象身份,而不是平等。此行为与 __eq__() 方法不同,后者比较两个对象的值。然而,当应用于字符串时,“is”关键字表现出独特的特征。
Python 中驻留的字符串存储在共享内存池中,因此具有相同的内存地址。因此,将 interned 字符串与 'is' 进行比较将返回 True,因为它们是内存中的同一对象。此实习过程通常发生在字符串文字中。
将非实习字符串与“is”进行比较时,结果为 False。未插入的字符串占用不同的内存位置,即使它们的值相同。例如:
<code class="python">s = "Test String" s2 = "Test String" print(s is s2) # Output: False</code>
在此示例中,'s' 和 's2' 具有相同的值,但它们在内存中不是同一个对象。因此,“is”返回 False。
自定义类无法覆盖“is”关键字的行为。重写 __is__() 不会影响对象与 'is' 的比较结果。无论类定义或任何定义的方法如何,“is”关键字始终测试对象身份。
以上是Python 如何实现'is”关键字?的详细内容。更多信息请关注PHP中文网其他相关文章!