ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

奇技淫巧不可取,切记切记

2021-04-05 14:51:38  阅读:345  来源: 互联网

标签:set 切记 生成式 list 阿酱 列表 dict 可取 奇技淫巧


奇技淫巧不可取,切记切记

文 | 轩辕御龙

来源:Python 技术「ID: pythonall」

奇技淫巧不可取,切记切记

之前我们介绍过Python有一个模块可以用来检查代码风格,并且u1s1,检查得还挺严的,搞得阿酱还挺怕怕的

就像读书时候有一个严厉的老大哥、啊不对,老师,一直始终盯着你,一旦犯错就会对你提出严厉的批评,羞得你无地自容。
奇技淫巧不可取,切记切记
01

上次就是这个老师,又把阿酱给训了一顿。不过讲心里话,老师训得还是有道理的,阿酱虽然口头上不爽嘟囔两句,但物理上也还是从善如流的——这肯定不是怕了老师手上的戒尺。

下面我就给大家好好儿讲讲我是怎么被训的——

问题呈现

作为Python的语法糖之一,想必大家对于列表生成式都已经熟悉得不能再熟悉了,甚至现在立马走出门去,不懂列表生成式都不敢理直气壮地说自己是个Pythonista——到了这种程度。

另外附赠一篇《PythoneerPythonista的区别》以飨大家,不另行收费。

——啊!好像我们本来也不收费?

但是上次坑了阿酱的恰好就是这个列表生成式,这里也跟大家share一下阿酱的辛酸故事。(类似的话我前两句是不是才说过来着

话说那是一个月黑风高的夜晚(程序猿加班很正常对伐?所以这个描述很合理且应景),阿酱当时辛辛苦苦耕耘,码出了好长一段代码,然后喜滋滋地例行pylint扫了一下……
奇技淫巧不可取,切记切记
02

啊咧?什么鬼?

R1721: Unnecessary use of a comprehension

不需要用列表生成式?

写的啥?

l = [n for n in range(10)]

有毛病吗?这有毛病吗?这***有啥毛病啊?你倒是说啊?我这代码有什么问题?咋就不该用列表生成式了?那你让我用啥?用爱吗?
奇技淫巧不可取,切记切记
03

冤有头债有主

好了到这里卡住了,接下来有请我们永远滴神——Google老大爷蹒跚登场

输入,搜索,到手!

奇技淫巧不可取,切记切记
04

让我们点开看起来更正规的第二个链接——至于我为什么说第二个更正规呢?阿酱当然不会告诉你我已经都点开看过了

翻译一下,第二个链接标题“Enhancement: Add a [unnecessary-comprehension]-checker”,大概是“改进点:添加[unnecessary-comprehension]检查器”这么个意思——

什么什么?你给我等下。

感情刚刚困扰我的那个规范问题还是打你这儿出来的啊,冤有头债有主,别怪我不客……咳,读书人的事,终归还是讲点道理的,咱们还是先把这链接的内容看完,再不客气也不迟。

这位老哥说了啥来着?

>     ...

    we could implement a checker that detects list/dict/set-comprehensions that can be replaced by the corresponding list/dict/set-constructors, which is faster and more readable. For example:

        list(iterable) instead of [x for x in iterable]
        dict(some_dict) instead of {k: v for k, v in some_dict}
        set(iterable) instead of {e for e in iterable}

    Although these cases seem trivial/obvious, I think having such a checker would help in cases where longer/more complex variable-names are used.

    ...

老哥说,他要实现这么一个检查器,检查出那些可以被list/set/dict构造器替换的list/set/dict生成式,使代码性能更佳、可读性更好。具体来说有这么些blabla的示例。

再仔细一看,嗨,真有道理

你看看这个列表生成式,[x for x in iterable],这不是脱了屁股放……啊错了,脱了裤子放屁吗?一个个迭代出来可迭代对象中的元素,然后原封不动地组装成一个列表;这种弱智活,直接交给内置的list不香吗?还会有傻*蠢到用列表生成式?哈哈哈哈哈哈,

标签:set,切记,生成式,list,阿酱,列表,dict,可取,奇技淫巧
来源: https://blog.51cto.com/15127519/2685904

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有