为了账号安全,请及时绑定邮箱和手机立即绑定

lambda 函数中的未定义变量

lambda 函数中的未定义变量

MMTTMM 2021-08-17 18:36:30
我有代码:from functools import reducepublic_ids = [1,2,3,4,5]filepath = '/path/to/file/'rdd = sc.textFile(    filepath)new_rdd = reduce(    lambda a, b: a.filter(        lambda x: b not in x    ),    public_ids,    rdd)此代码假设根据 id 列表过滤 rdd 中的行。rdd 是使用 spark 上下文 sc 的 textFile 方法从位于 filepath 中的文件创建的。此代码工作正常,但 pylint 引发错误:E: 未定义变量 'b'(未定义变量)我相信我编码它的方式不是正确的方式。如何更改它以便 pylint 不会再次引发错误?或者它只是一个pylint不能正确识别的结构?
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

很可能是pylint中的一个错误。

这是2 年前的类似错误报告

foo = lambda x: lambda: x + 1 print(foo(1)())

运行时正确打印 2,但 pylint 错误报告

E:  1,24: Undefined variable 'x' (undefined-variable)

这是 pylint 1.4.x 的回归。

这是最近的一个问题,在 11/14/2018 报告了同样的问题

该问题已在 #760 报告并由 #2274 修复。但是,该修复程序仅合并到仅支持 python >= 3.4 的 pylint 2.x 中,这让我们留下了 python 2 的 pylint 1.x 系列中未解决的错误。

编辑

看起来您的误报可能与上述问题略有不同,但我仍然认为这是一个错误。

我会尝试在他们的 repo 上创建一个问题,看看会发生什么(如果你决定这样做,请在评论中发布链接,以便我们可以关注它。)


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信