为什么 pylint 会抱怨这个代码块?
R1705: Unnecessary "elif" after "return" (no-else-return)
def f(a):
if a == 1:
return 1
elif a == 2:
return 2
return 3
Run Code Online (Sandbox Code Playgroud)
为了防止错误,我不得不创建一个临时变量,这感觉不太愉快。
def f(a):
if a == 1:
b = 1
elif a == 2:
b = 2
else:
b = 3
return b
Run Code Online (Sandbox Code Playgroud)
解决方案:
def f(a):
if a == 1:
return 1
if a == 2:
return 2
return 3
Run Code Online (Sandbox Code Playgroud)
else块的目的是定义在条件为真时不会执行的代码,因此不会继续执行到下一个块。
但是,在您的代码中,主条件块有一个 return 语句,这意味着执行将离开函数,因此不需要 else 块:根据定义,如果条件为真,则 return 之后的所有后续代码都不会执行. 这是多余的。它可以用一个简单的if.
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |