【发布时间】:2016-12-11 10:37:37
【问题描述】:
我发现这条规则here,我只是不知道"*" or_expr 是如何等同于starred_item 的。如果没有错,是什么问题导致我的代码a = 8;b = 2; *(a >> b), = (1,2,3) 引发了异常,上面写着“SyntaxError: can't assign to operator”?
【问题讨论】:
-
你甚至希望这个语句发生什么?
-
该代码没有意义,因此它引发
SyntaxError是完全可以理解的。 OTOH,*a, = 1, 2, 3有效(在最新版本的 Python 中)。 -
我在研究Python表达式的语法。我从规定的规则中导出了规则`*(identifier ">>" identifier)`,归类为
starred_expression。元组或列表都可以出现在简单赋值的左侧,` *(identifier ">>" identifier),` 也可以。但是我没有得到正确的结果。
标签: python python-3.x syntax ebnf