You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何赋值运算符及其变体未出现在Python运算符优先级表中?

Python赋值运算符(=、+=等)的优先级及未出现在官方优先级表的原因

一、赋值运算符的优先级

  • =、+=、-=、*=这类赋值运算符的优先级是所有Python运算符里最低的,比赋值表达式:=还要低。
  • 这意味着在包含赋值运算符的代码中,会先执行所有其他优先级更高的运算,最后才执行赋值操作。比如:
    a = 2 + 3  # 先计算2+3得到5,再把结果赋值给a
    b *= 4 + 1 # 先计算4+1得到5,再执行b = b*5的操作
    
  • 另外,赋值运算符是右结合的,链式赋值会从右往左执行:
    x = y = 10 # 先执行y=10,再把y的结果赋给x
    

二、未出现在官方优先级表的原因

Python官方文档的运算符优先级表只收录表达式类运算符,而=、+=这类属于赋值语句,并非表达式:

  • 表达式是能返回一个值的代码片段,比如2+3、x > 5、a := 10都属于表达式,可以直接作为其他操作的一部分(比如放在if条件判断里)。
  • 但a = 10是赋值语句,它的作用是修改变量的值,不会返回结果(在Python中,试图把赋值语句当作表达式使用会报错,比如if (a=10):会触发语法错误)。
  • 正因为赋值语句不属于表达式范畴,所以不会被列在那个针对表达式的优先级表里;而:=作为赋值表达式,能返回值,因此被收录其中。

内容的提问来源于stack exchange,提问作者proprogrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 23:39:54