预知小知识:
Python中的变量与其他语言稍有差异,如a = 10并不是直接在内存中创建一个变量a其值为10,而是在内存中创建一个a这个a指向这个10,在Python中所有牵扯到等号的均不是值赋值,全都是引用(C的小伙伴可以大致理解为处处是指针)。

示例代码:

>>> a = 10
>>> b = 10
>>> id(a)
1686269232
>>> id(b)
1686269232

以上可以看到变量只要赋值一致,他们在本机中的内存地址都一样。

+=示例代码:

# coding:utf-8
num = [88]def demo(nums):nums += nums  # 将nums指向的这个地址中的[88]和[88]进行合并print(nums)  # 两个列表合并将会得到[88, 88]demo(num)
print(num)  # 因为是引用类型num所指向的值已发生改变这里也会得到[88, 88]pycharm中执行结果:[88, 88][88, 88]
# coding:utf-8
num = [88]def demo(nums):nums = nums + nums  # 将nums所指向的[88]和[88]合并让demo中的零时变量nums重新指向[88, 88]print(nums)  # 这里会输出新的指向结果[88, 88]demo(num)
print(num)  # demo中的nums为零时指向所以不会影响num的值pycharm中执行结果:[88, 88][88]

总结:
虽然我们常使用xxx+=xxx或xxx=xxx+xxx得到的结果基本是一致的,但是底层执行还是有一些差异的,所以xxx+=xxx不完全等价于xxx=xxx+xxx。

小知识:

python的值类型和引用类型

值类型:

包含:字符串、元组、数值,本身不允许被修改

引用类型:

包含:列表、字典,本身允许修改(不能作用于字典的key,因为会进行一个hash过程可变参数类型是不行的)

转载于:https://www.cnblogs.com/weibgg/p/10786958.html

Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程相关推荐

  1. python中的装饰器(以及多个装饰器详细执行过程)

    装饰器 1.如果要增强一个函数的功能,但又不希望更改原函数中的代码,这种在代码运行期间动态增加功能的机制被称为装饰器   [Decorator] 2. 本质:实际上就是一个闭包,只不过被装饰的函数需要 ...

  2. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  3. python中str函数isdigit、isdecimal、isnumeric的区别

    python中str函数isdigit.isdecimal.isnumeric的区别 num = "1"  #unicode num.isdigit()   # True num. ...

  4. 【整理】Python中的re.search和re.findall之间的区别和联系 + re.finall中带命名的组,不带命名的组,非捕获的组,没有分组四种类型之间的区别

    之前自己曾被搞晕过很多次. 后来使用这些函数次数多了之后,终于比较清楚的弄懂了两者之间的区别和关系了. 尤其是一些细节方面的注意事项了. 在看下面的总结和代码之前,请先确保你对如下基本概念已经有所了解 ...

  5. python中items()和iteritems()的区别

    python中items()和iteritems()的区别 一.两个函数的作用 字典的items方法作用:是可以将字典中的所有项,以列表方式返回.因为字典是无序的,所以用items方法返回字典的所有项 ...

  6. python的input添加变量_在python中如何定义一个全局变量raw_input() 与 input()的区别...

    raw_input和input两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互.但他们的功能不尽相同.下面举两个例子,来说明两者使用上的不同. 例子1Python 2.7.5 ( ...

  7. python的none是什么-Python中的None与Null(空字符)的区别

    首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,"oblong'是一个str对象,异常也是一个对象,抽象一点是,人, ...

  8. Python中read()、readline()和readlines()三者间的区别和用法

    在python中读取文件常用的三种方法:read(),readline(),readlines(),在读取文件时经常用到三种写法.以前看书的时候觉得这东西很简单,一眼扫过,待到用时却也只知道有这么几个 ...

  9. Python中的a+=a和a=a+a的区别(认真看完后,我相信你一定会回来感谢我的)

    一.先来两段代码! a = 100def beyond(num):num+=numprint(num)beyond(a)#结果为:200 print(a)#结果为:100 a = 100def bey ...

最新文章

  1. linux svn missingargument -m,缺少參數-m在windows powershell中使用svn。
  2. 设计模式之动态代理的代码实现(Java)
  3. 看了这个总结,其实 Matplotlib 可视化,也没那么难!
  4. Erlang的散列数据结构
  5. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
  6. 英特尔世界公开赛总决赛落幕 三只优胜战队分享30万美元奖金
  7. es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...
  8. sql server 性能_如何在SQL Server中收集性能和系统信息
  9. 百万畅销书带你学 Python:第一个程序
  10. Markdown(五)——绘图工具mermaid之流程图Flowchart
  11. tcpdump抓取无效TCP标志数据包表达式
  12. windows下IOS证书制作,IOS证书在线制作
  13. Java Web项目开发项目经验总结
  14. catia三边倒角_CATIA课时:操作工具栏创建倒角倒圆角视频教程_翼狐网
  15. Firefox的下载处理器:FlashGot v1.0 Final颁发
  16. 最新微信hook二次开发c#源码介绍
  17. 解释程序与编译程序的区别
  18. 大数据Hadoop、Hive、Kafka、Hbase、Spark等框架面经
  19. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day5】 —— 基础篇2
  20. 多模态特征表示和融合

热门文章

  1. 记IOS8中碰到的一个JS bug
  2. 下一步工作的一些思考和问题
  3. Angular Redux
  4. 关于resolve非泛型方法不能与类型实参一起使用
  5. 三、 UIView封装的简单动画
  6. .net性能测试和优化1 基本概念
  7. Django的视图层
  8. BHO插件操作IE浏览器,js调用C#方法
  9. ZooKeeper(二)ZooKeeper能做什么?
  10. 一个从文本文件里“查找并替换”的功能