Nick Coghlan wrote:
I haven't looked at that code recently, but I believe the ADSL sequence in the assignment node is for statements where there are actually multiple assignment targets, such as:
p = x, y = 1, 2 p, x, y
((1, 2), 1, 2)
Ah I see. A quick test verifies exactly this:
>>> import _ast >>> ast = compile("p = x, y = 1, 2", "<string>", "exec", _ast.PyCF_ONLY_AST) >>> ast.body <_ast.Assign object at 0xb7d0122c> >>> ast.body.targets [<_ast.Name object at 0xb7d0124c>, <_ast.Tuple object at 0xb7d0128c>] >>> ast.body.value <_ast.Tuple object at 0xb7d0132c> >>>
I thought this would have been implemented as nested Assign nodes, but I'm obviously wrong. :) Thanks for the clarification.