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

Python:能否在if语句中声明临时变量以优化line.strip()重复调用?

解决方法

在Python里,你可以用海象运算符:=(Python 3.8及以上版本支持)来实现这个需求,它能在表达式内部临时绑定变量,不需要提前声明。写法如下:

if (stripped := line.strip()).startswith("#") or stripped.startswith('"""'):
    # 这里写你的逻辑代码

这里stripped := line.strip()会先执行line.strip(),把结果赋值给stripped,同时这个表达式本身的值就是stripped,所以可以直接链式调用.startswith("#"),后面的条件里直接用stripped就行,不会重复执行line.strip()。

如果你的Python版本低于3.8,没法用海象运算符,还可以用生成器表达式配合any间接实现,虽然写法稍绕,但同样能避免重复调用:

if any(s.startswith(p) for p in ("#", '"""') for s in [line.strip()]):
    # 这里写你的逻辑代码

这里通过[line.strip()]只执行一次strip操作,然后遍历这个列表里的唯一元素s,再检查是否匹配任意指定前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:39:54