我知道字符串在Python中是不可变的。但是,以下实验使我感到困惑。
首先,我们使用str()函数创建一个字符串,并将其他对象(在本例中为字典)传递给它:
>>> a = {1: 100, 2: 200}
>>> b = str(a)
>>> b
'{1: 100, 2: 200}'
然后我们检查其ID:
>>> id(b)
111447696
然后我们“修改”字符串:
>>> b = b + ' f'
>>> b
'{1: 100, 2: 200} f'
然后我们检查“已修改”字符串的ID:
>>> id(b)
111447696
我希望b
的ID在修改前后会有所不同,因为字符串是不可变的,因此在字符串中添加' f'
会产生另一个具有不同ID的字符串,内存中的其他位置。为什么两个不同的字符串具有相同的ID?