Python 3.9 return返回元组用海象运算符报SyntaxError如何解决
错误原因
该语法错误由赋值表达式(海象运算符:=)的解析优先级与return隐式元组的语法规则冲突导致:
Python 3.9虽完整支持PEP 572定义的赋值表达式,但在return后直接编写隐式返回元组时,未用括号包裹的赋值表达式会被解析器判定为非法语法——解析器无法正确识别赋值运算和元组元素的边界,最终抛出语法错误。
解决方案
有两种可行的修复方式:
- 方案1:给赋值表达式整体加上括号,明确解析优先级,保留原有一行返回的写法
return (slope := _slope(c1, c2)), _y_intercept(c1, slope) - 方案2:提前拆分赋值逻辑,写法可读性更强,无语法歧义
slope = _slope(c1, c2) return slope, _y_intercept(c1, slope)
内容的提问来源于stack exchange,提问作者Abhijit Sarkar
相关产品推荐
相关产品推荐

