为什么 python (3.7.9) 允许这种语法?
a = 3 b = a*+2
它觉得这很烦人,因为如果你想打字
b = a**2
b = a*+2
这是因为 python 支持一元算术运算。您还可以检查 python 如何使用 ast 模块将源表达式编译为
ast
抽象语法树
>>> 导入 ast >>> >>> print(ast.dump(ast.parse("b = a*+2"), indent=4)) 模块( 身体=[ 分配( 目标=[ 名称(id='b', ctx=Store())], 值=BinOp( 左=名称(id='a', ctx=Load()), op=Mult(), 右=一元运算( op=UAdd(), 操作数=常数(值=2))))], 类型_忽略=[])
另请参阅: