我正在对一些代码运行PyLint,但是我收到了警告:“一个函数中的所有返回语句都应该返回一个表达式或者没有一个都不应该返回。(inconsistent-return-statements)”
这是我拥有的代码:
def determine_operand_count(opcode_form, opcode_byte):
if opcode_form == OP_FORM.VARIABLE:
if opcode_byte & 0b00100000 = 0b00100000:
return OP_COUNT.VAR
return OP_COUNT.OP2
if opcode_form == OP_FORM.SHORT:
if opcode_byte & 0b00110000 == 0b00110000:
return OP_COUNT.OP0
return OP_COUNT.OP1
if opcode_form == OP_FORM.LONG:
return OP_COUNT.OP2
"OP_FORM"和"OP_COUNT"是之前代码中定义的枚举。
对我来说,这段代码非常易读,我很好奇PyLint警告在抱怨什么。在我的所有条件语句中,都返回了一个“OP_COUNT”类型。事实上,如果这些条件语句中没有任何一个返回“OP_COUNT”,我的代码将完全失败。
这似乎是关于我的“return语句”的警告,建议一些语句没有返回任何表达式。但这显然不是真的(就我所看到的),因为每个return语句都返回了某些东西。所以我猜测这与隐含的返回有关?
但是,就这一点而言,在我的原始代码中,我实际上为我的内部if语句保留了“else”子句。但是当我这样做时,PyLint给了我另一个警告:“不必要的'else' after 'return'(no-else-return)。”
我确实看到了以下内容:"如何修复python中不一致的返回语句?",但那似乎并不反映我代码中的情况。
因此,对我来说不清楚如何在这种情况下满足PyLint,因为代码显然可以正常工作,并似乎正在执行警告建议我应该做的事情。鉴于此,我怀疑我可能错过了一些明显的东西,但目前缺乏发现的直觉。如有帮助,请指出我所缺失的内容。