在chrome控制台中执行以下代码时
generate_the_sentence(doc,root,init_track,call_from) File "main.py", line 161, in generate_the_sentence
generate_the_sentence(doc,right_ST,init_track,call_from) File "main.py", line 155, in generate_the_sentence
write_to_output_file(subj_rel[0],subj_rel[1],[right_ST]) TypeError: 'NoneType' object is not subscriptable
它表示最后一个语句的错误“无效的左侧分配”。 但是当我们执行下面给出的代码时,它接受它并且不会显示任何错误。
let a, b, c;
b = 2;
a = b+1 = c = 2+3;
赋值'='是一个运算符,所以根据javascript中的运算符优先级,它应该可以正常工作。你们怎么想?问题是什么?
答案 0 :(得分:1)
您需要做的第一个代码
let a,b,c;
b=2;
a=b+1;
c=5;
做
a = b = c = 2 + 3
有效,因为你没有改变最后一个
左边的值答案 1 :(得分:1)
=
运算符首先计算右侧,并要求左侧为lvalue。
在每个赋值运算符的第二个示例中,左侧始终是变量,因此它可以正常工作。但在第一个例子中:
让a,b,c;
b = 2;
a = b + 1 = c = 2 + 3;
你试图将5分配到b+1
,它根本不是变量。
答案 2 :(得分:0)
您只需要一些括号就可以清楚地表达您的意思:
a = 1 + (b = c = 2+3);