Python 论字符串不变性
2015-12-02 16:19
459 查看
>>>'abc' + 'def'
'abcdef'
Python分别为'abc'和'def'分配了空间,当进行连接操作时,Python自动为新的字符串'abcdef'分配了空间
>>>s = 'abc'
>>>s = s + 'def'
>>>s
'abcdef'
上面的例子中,看上去我们把'abc'赋给了s,然后在s的末尾添加了'def'。这样看起来字符串似乎是可变的
其实不然,在"s +'def'"这个操作的时候,新建了一个新字符串,然后这个新的对象被赋给了s,原来的字符
串'abc'被释放掉了
我们可以用id()函数论证一下
>>>s = 'abc'
>>>id(s)
4455368904
>>>s += 'def'
>>>id(s)
4456241552
明显修改前后的身份是不同的
'abcdef'
Python分别为'abc'和'def'分配了空间,当进行连接操作时,Python自动为新的字符串'abcdef'分配了空间
>>>s = 'abc'
>>>s = s + 'def'
>>>s
'abcdef'
上面的例子中,看上去我们把'abc'赋给了s,然后在s的末尾添加了'def'。这样看起来字符串似乎是可变的
其实不然,在"s +'def'"这个操作的时候,新建了一个新字符串,然后这个新的对象被赋给了s,原来的字符
串'abc'被释放掉了
我们可以用id()函数论证一下
>>>s = 'abc'
>>>id(s)
4455368904
>>>s += 'def'
>>>id(s)
4456241552
明显修改前后的身份是不同的
相关文章推荐
- python入门--函数
- 每天一点python——缺失值处理
- Python-面向对象编程(一)
- 【python】正则表达式-group和group的区别
- python3.4 +pyqt5 +cx_freeze 打包成exe
- Python学习
- python enumerate用法
- Python在vim中的高亮显示设置方法…
- (每天一句python)两个list的交集、并集、差集
- python中if __name__ == '__main__': 的解析
- diff python2 python3
- 3.python学习笔记:python对文件的操作
- Python随手笔记之标准类型内建函数
- NLTK命名实体识别
- Python 获取当前时间
- python 学习笔记之一
- Python的编码问题
- Python 效率
- Python基础——版本的查询
- python入门--字典dict和集合set