为了账号安全,请及时绑定邮箱和手机立即绑定

pylint 争论三元运算符与赋值表达式

pylint 争论三元运算符与赋值表达式

四季花海 2022-09-06 16:00:20
我有一些这样的代码:return (    (1 / a)    if (a := foo())    else 0)我的pylint对此进行了争论,因为“在赋值之前使用变量'a'”,甚至评估顺序也应该是先,然后或。我试过了,但似乎派林特仍然不同意这一点。a := foo()1 / a0pip install --upgrade pylint
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

好吧,我发现这是Pylint的问题:


https://github.com/PyCQA/pylint/issues/3347


“pylint可以解析海象运算符,但我们实际上还没有实现对它的支持。(1月21日)


无论如何,我将代码修改为一些等效的版本,这些版本不会导致“在赋值前使用变量”,例如:


if (a := foo()):

    return 1 / a

else:

    return 0


查看完整回答
反对 回复 2022-09-06
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信