【发布时间】:2014-03-23 04:54:17
【问题描述】:
看了这两个问题,
- Why does Python assignment not return a value?
- Python assigning multiple variables to same list value?
我有这个问题:
a = b = c = 42 如何将42 传播到左侧而不在每一步返回值?
【问题讨论】:
标签: python
看了这两个问题,
我有这个问题:
a = b = c = 42 如何将42 传播到左侧而不在每一步返回值?
【问题讨论】:
标签: python
因为a special exception in the syntax,专门针对那个确切的用例。查看 BNF:
assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression)
注意(target_list "=")+。
【讨论】:
这种方式的链式赋值不需要赋值返回值。它是一种特殊形式的赋值语句,将对象绑定到多个名称。
【讨论】:
这是一个 python 功能。来自Python Tutorial:
一个值可以同时赋值给多个变量:
>>> x = y = z = 0 # Zero x, y and z
>>> x
0
>>> y
0
>>> z
0
注意,事实上,赋值不会返回任何值。你不能这样做
a = b = (c = 2)
【讨论】: