我有這樣一行:爲什麼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