Nev*_*eha 4 python if-statement pylint
我正在尝试找出如何解决我遇到的 Pylint 问题。我对编码和 Python 比较陌生,从来没有真正学过如何简化 if 表达式。
我从这个开始
if variable_name == Labels.INVALID:
marked_invalid = True
else:
marked_invalid = False
Run Code Online (Sandbox Code Playgroud)
Pylint 给了我一个关于这句话的错误:
The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)
Run Code Online (Sandbox Code Playgroud)
所以我把它改成这样:
marked_invalid = True if variable_name == Labels.INVALID else False
Run Code Online (Sandbox Code Playgroud)
现在我收到上述错误消息
The if expression can be replaced with 'test' (simplifiable-if-expression)
Run Code Online (Sandbox Code Playgroud)
我不知道从这里该去哪里。
Bop*_*reH 12
该表达式variable_name == Labels.INVALID的值为 或True,False您正在测试该值以查看是否应将True或False分配给marked_invalid。
pylint 建议您直接分配值,而不进行测试:
marked_invalid = variable_name == Labels.INVALID
Run Code Online (Sandbox Code Playgroud)
有时我会在表达式两边添加括号,以避免将其与多重赋值混淆 ( a = b = C)。不是必需的,但(可以说)有助于可读性:
marked_invalid = (variable_name == Labels.INVALID)
Run Code Online (Sandbox Code Playgroud)
如果variable_name == Labels.INVALID为true,则marked_invalid将为true;如果为假,则marked_invalid将为假。
该建议提到是bool(因为您的条件不必是 just True/False。例如,if my_list:如果列表非空,则成功。所以它建议bool(强制该值是True/False(布尔值)。
| 归档时间: |
|
| 查看次数: |
3883 次 |
| 最近记录: |