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

我有一些这样的代码:


return (

    (1 / a)

    if (a := foo())

    else 0

)

我的pylint对此进行了争论,因为“在赋值之前使用变量'a'”,甚至评估顺序也应该是先,然后或。我试过了,但似乎派林特仍然不同意这一点。a := foo()1 / a0pip install --upgrade pylint


四季花海
浏览 71回答 1
1回答

心有法竹

好吧,我发现这是Pylint的问题:https://github.com/PyCQA/pylint/issues/3347“pylint可以解析海象运算符,但我们实际上还没有实现对它的支持。(1月21日)无论如何,我将代码修改为一些等效的版本,这些版本不会导致“在赋值前使用变量”,例如:if (a := foo()):    return 1 / aelse:    return 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python