一日一技:你的代码是如何被炫技毁掉的

简介: 一日一技:你的代码是如何被炫技毁掉的

摄影:产品经理剥壳:kingname

你的代码是如何被炫技毁掉的?

假设有这样一个例子:

一个函数接收两个参数,第一个参数为一个字典,第二个参数为一个列表,我们要把列表中的每一个元素去查字典,如果能够查询到,那么就获取值,如果不能查询到,就跳过。

例如:

输入:{'a': 1, 'b': 2, 'c': 3}['a', 'd', 'c'],那么打印:

a=1
c=3

我们可能会这样写代码:

def referer_dict(target, keys):
    for k in keys:
        if k in target:
            print(f'{k}={target[k]}')

那么有没有可能把判断k是否在 target这个操作去掉呢?也可以:

def referer_dict(target, keys):
    for k in keys:
        values = target.get(k, None)
        values isNoneor print(f'{k}={target[k]}')

但这种写法实际上并没有节省代码行数,不如这样改:

def referer_dict(target, keys):
    for k in keys:
        k notin target or print(f'{k}={target[k]}')

接下来还可以继续优化成一行代码:

def referer_dict(target, keys):
    [print(f'{k}={target[k]}') for k in keys if k in target]

停。

再这样魔改下去这个函数都可以去掉。总共只需要1行代码。但是这样炫技并不可取。代码可读性和可维护性比炫技重要一万倍。

第四种写法,纯粹就是为了凑出这个打印结果而强行使用了列表推导式,毫无可读性,别人接手这个代码也难以维护。

保持 Python 的自文档性,优秀的 Python 代码,本身就是最好的文档,连注释都不需要就能让人理解。

目录
相关文章
|
8天前
|
Python
探索编程之道:从代码中寻找生活的哲理
【10月更文挑战第35天】在编程的世界里,每一行代码都蕴含着深刻的意义。就像生活中的每一个选择都会影响我们的未来一样,代码中的每个决策也会塑造程序的运行结果。本文将通过一个简单的代码示例,探讨如何从编程中汲取生活的智慧,以及如何在面对技术挑战时保持初心和持续学习的态度。让我们一起走进编程的世界,发现那些隐藏在代码背后的生活哲理吧!
|
2月前
|
Python
从代码中寻找生活的哲理
【9月更文挑战第26天】在编程的世界里,我们常常被复杂的逻辑和冗长的代码所困扰。然而,如果我们换一个角度,将编程看作是一种生活方式,那么我们就可以从中找到许多生活的哲理。本文将通过一些简单的编程示例,探讨如何从代码中寻找生活的哲理。
|
4月前
|
算法
代码之美:从混乱到秩序的编程之旅
【7月更文挑战第14天】编程,一门将思维转化为电子指令的艺术。在这篇文章中,我将带你领略编程的美学,从最初的混沌编码到最终的逻辑严谨、运行高效的程序。我们将一同探索如何通过理解问题、选择合适的数据结构与算法、编写可读性强的代码以及不断重构来提升代码质量。这不仅是一个技术提升的过程,更是一次思维的升华。
|
6月前
|
开发者
代码与禅:在软件开发中寻找内在平静
【5月更文挑战第28天】 在快速迭代的科技世界中,软件开发者往往沉浸于无尽的代码海洋。本文探讨了如何将禅宗哲学融入编程实践,以提升开发效率和内在平和。通过禅修的三个核心原则——专注、简洁、当下意识,我们能够重新审视代码的本质,优化思维模式,并最终达到技术与精神的和谐统一。
|
Go
腥风血雨中,这招救了我的代码!
腥风血雨中,这招救了我的代码!
55 0
|
IDE 开发工具 Python
这样的奇技淫巧,劝你不用也罢
这样的奇技淫巧,劝你不用也罢
139 0
|
SQL JavaScript 前端开发
#你会担心掌握的技术语言过时吗?#一入编程深似海,从此妹子是路人
我掌握的技术语言有C、C++、ActionScript、JavaScript、TypeScript、Flex、Java、SQL、Scala、CAD,当然,这还不算一些具有特殊语言的技术框架,如Vue.js、Angular、Spark、Android、HarmonyOS、Node.js等,如果算上就更多了。
258 0
|
设计模式 移动开发 安全
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
对大规模系统进行重构,如果一个人对着又臭又长的代码硬刚,即使花了大量的时间进行手工验证,最后仍然会有很多问题,特别是一些深路径及特殊场景下的问题。其实,大规模的系统级别重构时是有方法的。我们采访了 Thoughtworks 数字化转型与运营 资深咨询师黄俊彬(QCon+案例研习社讲师),请他来分享 MV*模式重构演进的方法和经验。
571 0
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
|
Python
一日一技:你的代码是如何被炫技毁掉的
一日一技:你的代码是如何被炫技毁掉的
195 0