首页 > 解决方案 > 不一致的返回值Pylint

问题描述

我已经使用 pylint 检查了我的代码,并且收到了以下建议。'函数中的所有 return 语句都应该返回一个表达式,或者它们都不应该返回。(不一致的返回语句)'。代码块如下。我正在传递一个值,需要返回它所属的值范围。如果我将返回值移到 if 之外,它将返回不正确的计数值。有什么建议么?

def findRangeValue(ranges, number):

    count = -1
    n = 2
    for x in range(len(ranges)-n+1):
        count += 1
        batch = range[x:x + n]
        if batch[0] < number <= batch[1]:
            return count

标签: pythonpylint

解决方案


  • None您需要确认函数在最常见的情况下始终具有非空(非)返回值。
  • 当循环中的所有 if 语句失败时,您的代码将返回None,需要在循环外添加最终返回值。

示例代码:

def findRangeValue(ranges, number):
    count = -1
    n = 2
    for x in range(len(ranges)-n+1):
        count += 1
        batch = ranges[x:x + n]
        if batch[0] < number <= batch[1]:
            return count
    return -1

print(findRangeValue([1,3,5,7,9], 4))
print(findRangeValue([1,3,5,7,9], 10))

结果:

1
-1

推荐阅读