python - PyLint:尝试解包非序列

标签 python pylint

我是 PyLint 的新手,很高兴在我的源代码上看到很多警告。尽管大多数警告都很明显,但有些警告对我来说没有意义。例如,

def foo(a, b):
    if b is not None:
        return a, b
    else:
        return None

result = foo(a, b)
if result is None:
    return get_something(a)

value1, value2 = result

foo(a, b) 的返回值可以是元组或无。从 foo 获取返回值后,我检查它是否是有效结果。 (这有点类似于在 C/C++ 中检查 NULL 指针)但是,PyLint 提示这样的代码; Attempting to unpack a non-sequence [W:unpacking-non-sequence] 除了抑制此警告外,是否可以避免此类警告?

最佳答案

这有点没有答案,但这就是我编写这段代码的方式。最重要的是,代码必须是可预测的,我发现总是返回相同数量的可预测返回值。这也使文档更容易,以下代码也更短一些。

def foo(a, b):
    if b is not None:
        return a, b
    return None, None

value1, value2 = foo(a, b)
if value1 is None:   # Alt: value1 is None or value2 is None
    return get_something(a)

关于python - PyLint:尝试解包非序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500242/

相关文章:

python - 如何从包含字典对象的列表中删除文本?

python - 来自 Jenkins/Sonarqube 的 Pylint 错误

python - 防止 self 分配的 pylint 保护

python - Gekko 约束中的最大方程长度限制

python - 在 Python 的 Spyder 编辑器中更改缩进设置

python - 计算将数组中的值向上或向下舍入以最小影响平均值的点的算法

python - 为什么 Pylint 不喜欢内置函数?

python - pylint 无法导入自定义模块和函数(模块中无名称)

python - Pylint 警告只出现在 Jenkins 上

Python_根据 Pandas 数据帧中的所有值执行特定行