我有以下示例功能:
def example(inp):
if not isinstance(inp, list):
return 'Not list'
else:
return 'List'
>>> example('asdf')
'Not list'
>>> example(['asdf',])
'List'
And yet pylint
抱怨说:
no-else-return:“return”后不必要的“else”
为什么它会发出这个看起来很愚蠢的警告?
因为它相当于这个较短的代码:
if not isinstance(inp, list):
return 'Not list'
return 'List'
具体来说,当身体if
以一个结尾return
,错误条件的代码是否在一个中并不重要else
或不:只有在以下情况下才会执行if
条件为假,因为如果条件为真,函数将在结束时返回if
body.
Pylint 似乎更喜欢更紧凑的版本。但这两个版本都是完全正确的,我想说有时,if/else
版本更清晰。就我个人而言,我愿意if/else
如果两个物体的大小大致相同,并且只有if
如果它的身体很短并且想要成为else
主体很长,从而为其节省了缩进级别。奖励:如果你有很长的if
身体和短else
身体和else
结束于return
(或者在该函数之后没有任何其他内容if/else
),否定条件并以短路结束if
身体和没有else
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)