【发布时间】:2015-02-01 00:49:41
【问题描述】:
我很困惑,连续相等的=可以在python中使用:
a = b = c
这个语言功能叫什么?有什么我可以读到的吗?
可以生成4个等吗?
a = b = c = d
【问题讨论】:
我很困惑,连续相等的=可以在python中使用:
a = b = c
这个语言功能叫什么?有什么我可以读到的吗?
可以生成4个等吗?
a = b = c = d
【问题讨论】:
这只是将a 和b 声明为等于c 的一种方式。
>>> c=2
>>> a=b=c
>>> a
2
>>> b
2
>>> c
2
所以你可以随心所欲地使用:
>>> i=7
>>> a=b=c=d=e=f=g=h=i
您可以在此 Python 教程的Multiple Assignment 中阅读更多内容。
Python 允许您将单个值分配给多个变量 同时地。例如:
a = b = c = 1
这里,创建了一个值为 1 的整数对象,并且所有三个 变量被分配到相同的内存位置。你也可以 将多个对象分配给多个变量。例如:
a, b, c = 1, 2, "约翰"
这里,两个值为 1 和 2 的整数对象被赋值给 变量 a 和 b,一个值为“john”的字符串对象是 赋值给变量 c。
还有另一件奇葩的事!你可以像这样交换值:a,b=b,a:
>>> a=2
>>> b=5
>>> a,b=b,a
>>> a
5
>>> b
2
【讨论】:
python 支持一次多变量赋值称为多重赋值。
In [188]: a = b = c = d = 4
In [189]: a
Out[189]: 4
In [190]: b
Out[190]: 4
In [191]: c
Out[191]: 4
In [192]: d
Out[192]: 4
In [193]: a = 2
In [194]: b = 2
与immutable对象相同
In [195]: a, b = 2 #int is a immutable object like `tuple`, `str`
虽然这对于像list、dictionary 这样的可变对象并不意味着
阅读mutable and immutable
【讨论】: