2013-04-10 44 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)形式的多重任務。

相關問題