2013-04-10 31 views

回答

4

大多数语言通过将作业声明为表达式而脱离它。

在你的榜样,任务就变成了:

def p_expression_assign(t): 
    'expression : NAME EQUALS expression' 
    t[0] = names[t[1]] = t[3] 

我只是改变了“声明”,以“表达”,无论是在功能名称和文档字符串语法,以及“返回”(分配给t[0])的正在分配的值。

我说“脱口而出”,因为其他语言(比如Python)会额外努力,因为它们允许多个赋值,但禁止在任何其他类型的表达式中使用赋值结果。

但是你的第二个例子a=(b=1)*1告诉我你想要更多的松散(或类C)形式的多重任务。

相关问题