【发布时间】:2016-10-12 21:54:26
【问题描述】:
在python中
>>> a = 5
>>> a is 5
True
但是
>>> a = 500
>>> a is 500
False
这是因为它将低整数存储为单个地址。但是一旦数字开始变得复杂,每个 int 都有自己唯一的地址空间。这对我来说很有意义。
当前的实现为 -5 到 256 之间的所有整数保留一个整数对象数组,当您在该范围内创建一个 int 时,实际上您只是获取对现有对象的引用。
那么现在,为什么这不适用于字符串?字符串不是和大整数一样复杂吗(如果不是更复杂的话)?
>>> a = '1234567'
>>> a is '1234567'
True
python 如何有效地为所有字符串文字使用相同的地址?它不能像对数字那样保留所有可能的字符串的数组。
【问题讨论】: