Pylint 警告:可能不平衡的元组与序列解包
Posted
技术标签:
【中文标题】Pylint 警告:可能不平衡的元组与序列解包【英文标题】:Pylint warning: Possible unbalanced tuple unpacking with sequence 【发布时间】:2015-03-14 19:57:05 【问题描述】:我有一段 Python 代码:
def func1():
a=set()
b = ','.join(map(str, list(a)))
return b, []
def func2():
d = 1
e = 2
return func1() + (d, e,)
def main():
a,b,c,d = func2()
if __name__ == '__main__':
main()
当我通过pylint
(1.4.0) 运行它时,我收到警告:
W: 12, 4: Possible unbalanced tuple unpacking with sequence: left side has 4 label(s), right side has 3 value(s) (unbalanced-tuple-unpacking)
func2
似乎总是会返回四个结果。错误是什么意思,为什么?
【问题讨论】:
它说可能(而W
只是一个warning)。显然,内省不够深入,无法确定func1
总是返回一个二元组,因此func2
总是返回一个四元组。鉴于您知道这不是问题,您可以将# pylint: disable=unbalanced-tuple-unpacking
添加到违规行。
这听起来像是误报,应该在 pylint 的问题跟踪器 (bitucket.org/logilab/pylint/issues) 上报告
@sthenault 太少了'b'
s - bitbucket!
【参考方案1】:
如果警告是错误的,可以通过将# pylint: disable=unbalanced-tuple-unpacking
附加到该行来禁用它。
【讨论】:
在带有警告的行之前添加它对我有用,而不是之后。以上是关于Pylint 警告:可能不平衡的元组与序列解包的主要内容,如果未能解决你的问题,请参考以下文章
Python 模拟 call_args_list 解包元组以对参数进行断言