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