在python的交互模式中,当我说,
>>> mystr = 'abc'
我们在string
类型的当前帧中创建了对象,内容为'abc'
现在,如果我更改mystr
的绑定,如下所示,
>>> mystr = 'def'
然后,名称mystr
将绑定到内容为'def'
的新对象。
我们知道字符串是不可变对象,因此包含'abc'
的对象不受影响。
在我的机器中它的工作原理如下:
>>> mystr = 'abc'
>>> id(mystr)
30868568
>>> mystr = 'def'
>>> id(mystr)
36585632
>>> mystr = 'abc'
>>> id(mystr)
30868568
我的问题:
新的绑定后,Python环境如何处理包含'abc'的对象,它会被清除吗?
答案 0 :(得分:0)
字符串是可变的,引用不是。
将str
分配给"def"
时,另一个字符串"abc"
不会影响。只有str
的内容会发生变化,并且会引用新的"def"
个对象。
当您在python,java等语言中操作字符串时,如果采用子字符串,它将生成一个新的字符串对象。
- 有关额外信息(效果提示),如果您使用字符串进行操作,请使用StringBuilder
。