使用 bool() 简化 'if' 语句
Simplifying an 'if' statement with bool()
我有一些代码导致 Pylint 抱怨:
The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)`
代码(带有混淆的变量名)如下。
A = True
B = 1
C = [1]
D = False
E = False
if A and B in C:
D = True
else:
E = True
print(D, E)
如何简化这使得 Pylint 不抛出任何错误?
我不太明白 bool()
如何用于此。我知道它将任何值转换为布尔值,但我不知道如何在此处应用它。
试试这个:
D = bool(A and B in C)
E = not bool(A and B in C)
该逻辑可以表示为:
D = A and B in C
E = not D
最初我对接受的答案有点困惑,然后意识到我的问题不在于接受的答案本身(这确实是完全正确的),而是问题的特殊性。我需要一个更通用/更简单的用例,所以我会尝试提供一个,希望它能对某人有所帮助。
simplifiable-if-statement
Pylint 重构基本上发生在我们使用 if-else 语句为布尔变量赋值时,否则该变量可能被赋值直接,根本不使用 if-else 语句。
一个通用的例子可以是:
if <condition>:
variable = True
else:
variable = False
可以(也应该)简化为:
variable = <condition>
其中 <condition>
是一个布尔表达式。
一个具体的例子:
if a > 5:
b = True
else:
b = False
应该改写为
b = a > 5
回到最初的问题,在这种情况下,条件是 A and B in C
并且正如其他贡献者所指出的那样,冗余片段:
D = False
E = False
if A and B in C:
D = True
else:
E = True
应该简化为
D = A and B in C
E = not D
我有一些代码导致 Pylint 抱怨:
The if statement can be replaced with 'var = bool(test)' (simplifiable-if-statement)`
代码(带有混淆的变量名)如下。
A = True
B = 1
C = [1]
D = False
E = False
if A and B in C:
D = True
else:
E = True
print(D, E)
如何简化这使得 Pylint 不抛出任何错误?
我不太明白 bool()
如何用于此。我知道它将任何值转换为布尔值,但我不知道如何在此处应用它。
试试这个:
D = bool(A and B in C)
E = not bool(A and B in C)
该逻辑可以表示为:
D = A and B in C
E = not D
最初我对接受的答案有点困惑,然后意识到我的问题不在于接受的答案本身(这确实是完全正确的),而是问题的特殊性。我需要一个更通用/更简单的用例,所以我会尝试提供一个,希望它能对某人有所帮助。
simplifiable-if-statement
Pylint 重构基本上发生在我们使用 if-else 语句为布尔变量赋值时,否则该变量可能被赋值直接,根本不使用 if-else 语句。
一个通用的例子可以是:
if <condition>:
variable = True
else:
variable = False
可以(也应该)简化为:
variable = <condition>
其中 <condition>
是一个布尔表达式。
一个具体的例子:
if a > 5:
b = True
else:
b = False
应该改写为
b = a > 5
回到最初的问题,在这种情况下,条件是 A and B in C
并且正如其他贡献者所指出的那样,冗余片段:
D = False
E = False
if A and B in C:
D = True
else:
E = True
应该简化为
D = A and B in C
E = not D