I = 3,B = 5
为什么我不能在python中运行上面的行?它说无法分配文字错误。它不是Java或C ++中的错误。
答案 0 :(得分:2)
“为什么不呢?”的大图回答是语言的设计者不喜欢这种语法,并且更喜欢程序员编写
i, b = 3, 5
{em>技术不允许这样做的原因以及错误消息的说明可以在reading the official grammar找到。
您还可以通过检查Python AST来尝试查看您的短语的含义。运行这个:
import ast
print(ast.dump(ast.parse("i=3,b")))
你得到了
Module(body=[Assign(targets=[Name(id='i', ctx=Store())], value=Tuple(elts=[Num(n=3), Name(id='b', ctx=Load())], ctx=Load()))])
因此,只需编写i=3,b
即可将元组(3,b)
赋值给变量i
。现在你可以写
i = b = 3
为i
和b
分配3。但如果你写了
i = 3, b = 5
然后你会尝试将5分配给不允许的元组(3,b)
。
这就是Python的方式。 Python的设计者希望它是这样的。他就是boss。