可变类型和不可变类型

想要了解a += b和a = a + b结果是不是一样。要先知道什么是可变变量和不可变变量。

Python中

  • 不可变类型:数字,字符串,元组
  • 可变类型:列表,字典

不可变类型运算举例

不可变+=

不可变=+

不可变类型在进行+=和=+之后结果是一样的。

可变类型运算举例

可变+=

可变类型+=情况

可变=+

可变类型a=a+b情况

通过上图对比我们发现可变类型的变量在进行a += b和a = a + b时结果是不一样的。在进行+=操作时,a1和a2值同时改变,但是在进行先加后赋值时a1和a2不能同时改变。

大家一定要记住上面的结论

原理__add__和 iadd 的区别

  • add 方法接收两个参数,返回它们的和,两个参数的值均不变。
  • iadd 方法接收两个参数,第一个参数的值改变

可变类型使用加号操作(即a=a+b),调用__add__会返回一个新的对象,原来的对象不变。

示意图如下:

a1 = a1 + b 后a1会指向新的结果,但是a2指向不变

可变类型使用+=操作(即a+=b),调用__iadd__方法,第一个参数的值改变,即a1指向的本身内容发生改变,指向位置不发生改变。

示意图如下:

a1 += b后a1指向的内容发生改变,指向的位置不发生改变,所以a2的内容也会跟着a1一起改变

干货丨你知道Python中a += b和a = a + b的结果是不一样的吗?相关推荐

  1. 干货丨重中之重:数据分析中常用指标及术语!

    数据解读是数据分析师的基本功,如果不能充分理解数据分析中出现的各类指标及术语,数据分析工作将很难展开. 对于数据分析师来说,了解常用的分析指标和术语是做好数据解读的前提.下面,一起来了解下常用指标及术 ...

  2. python中的逻辑量有什么_python小白入门须知的9个基础知识丨纯干货

    注释 单行注释:# #注释内容 print('123') #123 print('abc') #abc print("abc") #abc 多行注释:''' 或 "&qu ...

  3. 【干货】Python中“\n”、“\t”、“end”的用法

    [干货]Python中"\n"."\t"."end"的用法 一级目录 二级目录 三级目录 一级目录 二级目录 三级目录

  4. 干货丨机器学习必备:前20名Python人工智能和机器学习开源项目

    如今机器学习和人工智能已经变得家喻户晓,有很多爱好者进入了该领域.但是,什么才是能够进入该领域的正确路径呢?如何保持自己跟上该领域的发展步伐呢? 为了解决以上两个问题,可以通过利用高级专业人员每天使用 ...

  5. python的for循环语句_干货丨Python的循环语句基础讲解!

    我们知道计算机程序语言一般是按照顺序执行的,那么编程语言就提供了各种控制结构,允许更复杂的执行路径,其中循环语句的作用就是允许我们执行一个语句或语句组多次. 在Python中循环语句的类型主要有以下几 ...

  6. python 中主线程结束 子线程还在运行么_「干货」python线程笔记

    引言&动机 考虑一下这个场景,我们有10000条数据需要处理,处理每条数据需要花费1秒,但读取数据只需要0.1秒,每条数据互不干扰.该如何执行才能花费时间最短呢? 在多线程(MT)编程出现之前 ...

  7. 【干货】Python中几个有趣的函数

    01 一用而过:lambda 很多语言都有匿名函数,python的匿名函数写作lambda,当需要实现一定功能而又不想"大张旗鼓"的def一个函数时,lambda就是最优的选择. ...

  8. [转载] python判断字符串中包含某个字符串_干货分享| Python中最常用的字符串方法

    参考链接: Python中字符串string capitalize 字符串是字符序列.Python中内置的string类代表基于Unicode国际字符集的字符串.除了Python中常见的操作外,字符串 ...

  9. python中的数据分析库有哪些_全网最全数据分析师干货-python篇

    作者:胖熊酱 著作权归作者所有.AI开发者获得授权转载,禁止二次转载 https://zhuanlan.zhihu.com/p/79873148 注:封面图片来自网络 最近正在准备面试,故整理了很多面 ...

最新文章

  1. 2016政策与市场协同发力大数据,小公司如何搏杀BAT?
  2. python3+selenium入门08-鼠标事件
  3. 【java】【转】Java之classpath
  4. 找不到具有指定ID的对话框类解决方法
  5. php之自动加载(懒加载)
  6. 在vue项目中引用element-ui时 让el-input 获取焦点的方法
  7. 修改服务器ip 需要重启,linux服务器设置ip后需要重启吗
  8. edge如何导入html文件收藏夹,win10浏览器 edge浏览器收藏夹怎么导入?
  9. Meta Learning | 加了元学习之后,少样本学习竟然可以变得这么简单!
  10. 网管必须掌握的八个DOS命令
  11. python论文参考文献5篇_毕业论文参考文献
  12. redis HSCAN命令及jedis的hscan方法
  13. 吴晓慧讲述:“随手记安全吗”网贷平台“出清”利好行业发展
  14. M1芯片MacBook安装手机app
  15. 查看linux系统有哪些登陆用户,Linux_linux查看系统登录用户,Last login: Wed Jul 29 17:16:10 2009 fro - phpStudy...
  16. 数据科学家:人工智能领域的知识图谱理论总结
  17. 浅谈JAVA中Calendar类FirstDayOfWeek的问题
  18. cropper(裁剪图片)插件使用(案例)
  19. python时间函数纳秒_python 纳秒
  20. android获取到电信的手机号码,Android基站信息获取以及Sim卡相关信息获取

热门文章

  1. Python学习(七) 流程控制if语句
  2. PHP JSON 操作总结
  3. 【西交ACM】298 第N大的数
  4. JAVA EXCEL API详解
  5. 场效应晶体管内存 到底是谁发明的?
  6. CCNA Discovery第二学期 (版本 4.1)
  7. python pil png合成gif储存时变黑_使用 Python 玩转图片
  8. 【PP】重复生产参数文件说明
  9. 【转载】SAP Oracle ERP产品的比较
  10. 【MM模块】ASAP 项目实施方法简介