查询姓名& Python中的对象

时间:2014-07-08 12:55:12

标签: python

在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'的对象,它会被清除吗?

1 个答案:

答案 0 :(得分:0)

字符串是可变的,引用不是。

str分配给"def"时,另一个字符串"abc"不会影响。只有str的内容会发生变化,并且会引用新的"def"个对象。

当您在python,java等语言中操作字符串时,如果采用子字符串,它将生成一个新的字符串对象。

- 有关额外信息(效果提示),如果您使用字符串进行操作,请使用StringBuilder