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

Python中如何不使用续行符拆分链式赋值长行?

无需续行符拆分链式赋值长行的方法

嘿,这个问题确实有点 tricky,不过好在有几种可行的方式,完全不用依赖续行符 \:

方法1:利用赋值表达式(海象运算符 :=)

Python 3.8及以上版本支持的赋值表达式可以帮你把链式赋值放进括号里换行,完美解决这个问题。具体写法如下:

long_variable_name = another_long_name = (
    a_third_name := some_func()
)

这个写法和你原来的链式赋值完全等价:some_func()只会执行一次,三个变量都会被赋值为它的返回值。括号里的赋值表达式a_third_name := some_func()会返回函数的结果,所以外层的两个赋值依然能拿到这个值,同时a_third_name也被正确赋值了。

方法2:拆分为独立赋值语句(兼容所有Python版本)

如果你用的是Python 3.8以下的版本,没法用海象运算符,那最稳妥的方式就是把链式赋值拆成多行独立的赋值语句。虽然看起来不是“链式”的形式,但逻辑和效果完全一致:

a_third_name = some_func()
another_long_name = a_third_name
long_variable_name = another_long_name

这种写法兼容性拉满,可读性也不差——一眼就能看出来三个变量都指向同一个值,some_func()同样只会执行一次,和链式赋值的核心逻辑没有区别。

需要补充的是,你之前尝试用普通括号包裹中间赋值的思路行不通,是因为Python里的赋值语句不属于表达式,不能放在括号里作为值传递,这就是那些写法报语法错误的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:48:06