我有这样一行:为什么Pylint不像内置函数?
filter(lambda x: x == 1, [1, 1, 2])
pylint的是表示警告:
W: 3: Used builtin function 'filter'
这是为什么?是列表理解推荐的方法吗?
我当然可以像这样重写这个:
[x for x in [1, 1, 2] if x == 1]
而且我没有得到任何警告,但我在想,如果有一个PEP这个?
我有这样一行:为什么Pylint不像内置函数?
filter(lambda x: x == 1, [1, 1, 2])
pylint的是表示警告:
W: 3: Used builtin function 'filter'
这是为什么?是列表理解推荐的方法吗?
我当然可以像这样重写这个:
[x for x in [1, 1, 2] if x == 1]
而且我没有得到任何警告,但我在想,如果有一个PEP这个?
Pylint经常聊天关于它不应该的东西。您可以禁用.pylintrc文件中的警告。
此页面http://pylint-messages.wikidot.com/messages:w0141表明问题在于过滤器和映射已被列表解析所取代。
这样一行在pylintrc文件就会安静警告:
disable=W0141
我不知道那个网站,非常感谢! – igorgue 2010-08-25 19:22:12
我也不知道。我使用“-i y”标志运行pylint以包含消息编号,然后使用Google搜索“pylint W0141”,这就是我发现的。 – 2010-08-25 19:37:26
完成,添加了一个示例行。 – 2014-08-07 10:16:26
我遇到了同样的问题,无法弄清楚
为什么内置函数'输入”是坏。我打算
禁用它:
pylint的--bad函数= “[图,过滤,应用]” YOUR_FILE_TO_CHECK_HERE
一旦你喜欢的设置:
pylint --bad-functions="[map,filter,apply]" --some-other-supercool-settings-of-yours
--generate-rcfile > test.rc
验证您的设置是否在文件中,例如:
cat test.rc | grep -i YOUR_SETTING_HERE
这之后您可以使用此文件在本地
pylint --rcfile test.rc --your-other-command-line-args ...
,甚至用它作为默认rcfile。为此,我仔细查阅你
pylint --long-help
只要放置“#pylint:disable = bad-builtin”会更快,但我怀疑有一些首选的方法可以从标准输入流中进行输入,如果记录在文档中的话,这些输入流将隐藏在深处。 – 2017-01-09 21:02:27
在python2中,'input()'是邪恶的,因为它执行'eval(raw_input())'。你应该总是使用'raw_input()'。在python3中,'input()'具有所需的行为(总是返回'str')。 – 2017-01-11 16:15:49
这是为什么?是列表理解推荐的方法吗?
列表理解是the tutorial example建议,其中规定
它更简明易读。
,并通过对SO的Python List Comprehension Vs. Map其中it is
lambda
使用列表理解比filter
大多数应答者(与类似的效率)使用filter
如果功能是预先定义的filter
和map
如果你
map
,map
,或TL; DR:在大多数情况下使用列表理解
有趣地,当我使用内建函数'map'时,pylint不喜欢,但它不喜欢当我从'cytoolz'导入'map'函数来代替它。 – bli 2017-01-17 17:21:33