赋值运算符
Python 语言中, 等号(=)是主要的赋值运算符。
anInt = -12 aString = 'cart' aFloat = -3.1415 * (5.0 ** 2) anotherString = 'shop' + 'ping' aList = [3.14e10, '2nd elmt of a list', 8.82-4]
注意,赋值并不是直接将一个值赋给一个变量, 尽管你可能根据其它语言编程经验认为应该如此。在 Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。
增量赋值
从 Python 2.0 开始, 等号可以和一个算术运算符组合在一起, 将计算结果重新赋值给左边的变量。这被称为增量赋值, 类似下面这样的语句:
x = x + 1
现在可以被写成:
x += 1
增量赋值相对普通赋值不仅仅是写法上的改变,最有意义的变化是可变对象会被就地修改(无修拷贝引用), 不可变对象则(分配一个新对象)。
Python 不支持类似 x++ 或 --x 这样的前置/后置自增/自减运算。
多重赋值
>>> x = y = z = 1 >>> x 1 >>> y 1 >>> z 1
在上面的例子中,一个值为 1 的整数对象被创建,该对象的同一个引用被赋值给 x、y 和z 。也就是将一个对象赋给了多个变量。当然,在 Python 当中,将多个对象赋给多个变量也是可以的。
多元赋值
另一种将多个变量同时赋值的方法我们称为多元赋值(multuple)。这不是官方 Python 术语, 而是我们将 "mul-tuple"连在一起自造的。因为采用这种方式赋值时, 等号两边的对象都是元组。
>>> (x, y, z) = (1, 2, 'a string)
在上面的例子里, 两个整数对象(值分别为1和2)及一个字符串对象, 被分别赋值给x, y 和 z。通常元组需要用圆括号(小括号)括起来,尽管它们是可选的。我们建议总是加上圆括号以使得你的代码有更高的可读性。