在python中,每一个对象都可以分为不可变性或者可变性。

不可变性可以用来保证在程序中保持一个对象的固定不变。

一个具有“不可变性”的对象,是一个在其创建以后不能够被改变的对象。例如,不能通过对字符串的某一位置进行赋值而改变字符串。

Python中的数字、字符串、元组是不可变的;列表和字典可以完全自由地改变。

尽管无法就地改变一个不可变的对象,但是可以通过运行一个表达式创建一个新的对象。例如,可以通过创建一个新的字符串,并以相同的变量名进行赋值:

str = 'bukebian'

str[0:2] = ''

Traceback (most recent call last):

File "file.py", line 3, in

str[0:2] = ''

TypeError: 'str' object does not support item assignment

str = 'ok'

print(str)

ok

此时,变量str指向了新的对象'ok',曾指过的对象'bukebian'没有发生任何变化,仍旧在其原来的内存空间。只有一种情况会出现,那就是被python清理掉,条件是其他变量都没有引用(指向)它。

python字符串不可改变怎么理解_python的“不可变性”代表了什么?相关推荐

  1. python字符串以什么标志结束_python字符串结束符

    python字符串结束符的更多内容_CSDN博客 2016-05-22 python 字符串末尾换行符处理 - qiqiaiairen的博客 - CSDN博... 找到以"imooc"开头和结尾的字符 ...

  2. python字符串常量有什么区别_Python经典面试题:is与==的区别

    is用于判断两个对象是否为同一个对象,具体来说是两个对象在内存中的位置是否相同. python为了提高效率,节省内存,在实现上大量使用了缓冲池技术和字符串intern技术. 整数和字符串是不可变对象, ...

  3. python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...

    str 提供了如下常用的执行查找.替换等操作的方法: startswith():判断字符串是否以指定子串开头. endswith():判断字符串是否以指定子串结尾. find():查找指定子串在字符串 ...

  4. python字符串倒数第三个_python字符串常用方法

    python 字符串常用操作方法 python 字符串操作常用操作,如字符串的替换.删除.截取.赋值.连接.比较.查找.分割等 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写 ...

  5. python 字符串find方法怎么用_Python字符串find()方法

    Python字符串find()方法确定字符串str是出现在字符串中,还是在字符串指定范围的子串中,子字符串是由给给定起始索引beg和结束索引end切片得出. 语法 以下是find()方法的语法 - s ...

  6. python字符串函数的find方法_python字符串的方法与操作大全

    一:字符串的方法与操作 *注意:首字母为l的为从左边操作,为r的方法为从右边操作 1.__contains__()判断是否包含 判断指定字符或字符串是否包含在一个字符串内,返回值为true或者fals ...

  7. python中的引用怎么理解_python 引用和对象理解

    今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象 ...

  8. python字符串中某个字符修改_Python中修改字符串的四种方法

    在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以下4种. 方法1:将字符串转换成列表后修改值,然后用joi ...

  9. python装饰器的通俗理解_python装饰器的通俗理解

    在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Py ...

最新文章

  1. 数据分析索引总结(上)Pandas单级索引
  2. 一文读懂:完整的支付系统整体架构
  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
  4. C/C++函数名修饰约定
  5. Java工作笔记-类型转换的一种思路(前后端分离、反射)
  6. eclipse-indigo 中 user libraries 自动部署 WEB-INF/lib 配置
  7. python 自动打开登陆应用编码_Python+tkinter模拟“记住我”自动登录实例代码
  8. 灯火阑珊处,都市夜归人
  9. java 函数式编程应用_java8 函数式编程应用
  10. 像距为什么要大于焦距?
  11. 查看电脑(服务器)ip地址与名称
  12. 腾讯云双十一云服务器配置表汇总
  13. 权限管理后端篇(一)之创建权限管理表引入knife4j和Druid数据源
  14. Material Design 之Style(三)
  15. BZOJ 2565 最长双回文串 Manacher
  16. Git教程-帮助开发人员更好的运用Git | 云效
  17. 有趣的微积分历史——wsdchong
  18. cv2.contourArea函数详解
  19. oracle账户别名,Oracle的别名
  20. TGA--数据压缩第二次作业

热门文章

  1. 《一》Java EE
  2. vue-cli入门之项目结构分析
  3. SPOJ371 Boxes(最小费用最大流)
  4. FTP初始化文件.netrc使用技巧[转发]
  5. 嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
  6. 【AS3代码】正则表达式的各种用法和小实例
  7. director 3d tank
  8. CentOS下PostgreSQL 主从实现之异步流复制(Hot Standby)
  9. 内网穿透反向代理应用 xfrp
  10. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 (以后在写SQL时,要有这种思想!!!)