我有一些这样的代码:
return (
(1 / a)
if (a := foo())
else 0
)
我的pylint对此进行争论是因为“在赋值之前使用变量'a'”,甚至求值顺序也应该是a:= foo()
,然后是1 / a
或0
。我尝试了pip install --upgrade pylint
,但是似乎pylint仍然不同意。
问题来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
好的,我发现这是Pylint的问题:
https://github.com/PyCQA/pylint/issues/3347
“ pylint可以解析海象运算符,但我们实际上尚未实现对它的支持。” (1月21日)
无论如何,我将代码修改为一些等效版本,这些版本不会导致“在分配之前使用变量”,例如:
if (a := foo()):
return 1 / a
else:
return 0
回答来源:stackoverflow