我有一些这样的代码:
return (
(1 / a)
if (a := foo())
else 0
)
我的pylint对此进行争论是因为“在赋值之前使用变量'a'”,甚至评估顺序也应该首先是a := foo()
,然后是1 / a
或0
。我尝试过pip install --upgrade pylint
,但似乎pylint仍然不同意这一点。我只想确保最新版本的pylint是否可以通过此?
[确定,我发现这是Pylint的问题:
https://github.com/PyCQA/pylint/issues/3347
“ pylint可以解析walrus运算符,但我们实际上尚未实现对它的支持。” (1月21日)
无论如何,我将代码修改为该等效版本,不会导致“在分配之前使用变量”:
if (a := foo()):
return 1 / a
else:
return 0
)