zoukankan      html  css  js  c++  java
  • python:a += b 和 a = a + b

    在python中,不同的情况下,这两个表达式有着很大的区别:
    如果a,b都是可变对象,例如list,a+=b实际是对a指向的地址上的值进行修改,即运算前后id(a)的值是不变的。
                而a=a+b是不同的,首先计算等号左边a+b得到新的值,然后a再指向这个新的值。即运算后id(a)发生了改变;
    但是对于不可变对象,例如int,str等,这两个表达式是一样的效果。即运算前后id(a)的值一定会发生改变。 道理很简单,不可变对象指向的地址上的值不能发生改变,只能在新的地址上存运算后的值。


  • 相关阅读:
    工厂增强
    面试题
    SpringBean生命周期及作用域
    字符串
    带参数方法实例
    带参数方法
    人机猜拳
    类的无参方法
    类和对象实例2
    类和对象实例1
  • 原文地址:https://www.cnblogs.com/wuchenggong/p/9200837.html
Copyright © 2011-2022 走看看