在Python AST中,解压缩任务的目标何时是列表而不是元组?
问题描述:
根据GreenTreeSnakes documentation on Assignment statements:在Python AST中,解压缩任务的目标何时是列表而不是元组?
作业。
targets
是节点列表,而value
是单个节点。
targets
中的多个节点表示为每个节点分配相同的值。 拆箱是通过在targets
内放置Tuple
或List
来表示的。
我的问题是,什么时候拆包将目标放在List中而不是Tuple?给出的例子解包成一个Tuple。
答
在任务,目标既可以是列表和元组:
a, b, c = value # assign to a tuple of names
[a, b, c] = value # assign to a list of names
不同的是化妆品到Python;请参阅Assignment statement reference documentation。
演示:
>>> parseprint('[a, b, c] = value')
Module(body=[
Assign(targets=[
List(elts=[
Name(id='a', ctx=Store()),
Name(id='b', ctx=Store()),
Name(id='c', ctx=Store()),
], ctx=Store()),
], value=Name(id='value', ctx=Load())),
])