Python中的可变字符串?

时间:2019-11-15 11:27:01

标签: python

我知道字符串在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?

0 个答案:

没有答案