Pylint 不理解 if/else 语句?

2024-03-05

我有以下示例功能:

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(使用前将#替换为@)

Pylint 不理解 if/else 语句? 的相关文章

随机推荐