我有一些这样的代码: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
添加回答
举报
0/150
提交
取消