版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jerry_1126/article/details/83999880
Python中的增强赋值语句,从C中借鉴而来,从Python 2.0开始出现。
普通赋值语句
>>> X = 100
>>> Y = 200
>>> X = X + Y
>>> X
300
>>> a = "Hello"
>>> b = "World"
>>> a = a + b
>>> a
HelloWorld
增强赋值语句
>>> X = 100
>>> Y = 200
>>> X += Y
>>> X
300
>>> a = "Hello"
>>> b = "World"
>>> a += b
>>> a
HelloWorld
常见增强赋值语句
>>> X += Y # 等价于 X = X + Y
>>> X -= Y # 等价于 X = X - Y
>>> X &= Y # 等价于 X = X & Y
>>> X |= Y # 等价于 X = X | Y
>>> X *= Y # 等价于 X = X * Y
>>> X /= Y # 等价于 X = X / Y
>>> X //=Y # 等价于 X = X // Y
>>> X ^= Y # 等价于 X = X ^ Y
>>> X >>= Y # 等价于 X = X >> Y
>>> X %= Y # 等价于 X = X % Y
>>> X **= Y # 等价于 X = X ** Y
增强赋值语句的优点
- 可以减少程序员输入
- 左侧只需计算一次。在X += Y中,X可以是复杂的对象表达式。在增强形式中,则只需要计算一次,速度更快!
- 优化技术会自动选择。对于支持原处修改的对象而言,增强形式会自动执行原处修改运算,而不是拷贝,速度更快!
>>> L = [1, 2]
>>> M = L # M,L此时为同一个对象
>>> L = L + [3, 4] # 执行此操作时,创建了一个新对象
>>> L, M # 此时M,L的对象及值都不同
([1, 2, 3, 4], [1, 2])
>>>
>>> L = [1, 2]
>>> M = L # M,L此时为同一个对象
>>> L += [3, 4] # 执行此操作时,在原处修改,相当于L.append()操作
>>> L,M # 还是同一个对象,速度比普通赋值要快!
([1, 2, 3, 4], [1, 2, 3, 4])
>>>