从python之禅看复杂与抽象
《python之禅》中有一句话:
Simple is better than complex.
Complex is better than complicated.
直接的翻译帮助不大:简单比复杂好,复杂比难懂的复杂好。
我们尝试分析它的内在含义。
第一句的意思相对好理解:如果能够让结构简单一些,就尽量简单一些。
为什么?
因为简单的结构鲁棒性更强。
简单的结构适用性更广,在情况发生变化时,受到的影响也更小。
结构越复杂,说明考虑的具体情况越多,于是也就越难以应对外部情况的改变。
从英文角度来看,两个词都是同一个词根,ple和plex的意思相同,都是折叠的意思。字面分析,simple就是折一次,complex就是都折起来。这就是简单与复杂的区别。能少折几次,就少折几次。
第二句想表达的意思有两层:
- 复杂性是不可避免的。简单的结构可以解决很多非常本质的问题,但最终我们仍然必须解决具体问题。在掌握了第一句原则的基础上,处理复杂性就是编程的必备功课。complex在英文的使用中就是代表不可避免的复杂。
- 复杂性怎样处理。复杂性应当被封装起来,封装的复杂性应当有一个明确的接口。complicated的词根与complex也是一样,的plic与plex,从字面看差不多,全折起来代表复杂。但complicated是一个动词被动式作为形容词,给人一种被弄复杂了、故弄玄虚、故意把问题复杂化的感觉。
怎样把复杂的事物弄得更复杂?
通过把事物纠缠在一起而做到,这就是complicated。
总结一下
第二句的意思,在处理不可避免的复杂结构时,应当将复杂的模块封装起来,提供清晰明确的接口。
让能够简单的事物尽量简单,让不可避免复杂事物尽量减少纠缠,是一种功力的体现。应该说,很大程度上是一种超于编程之外的功力。
真想学习编程,功夫在编程之外
从python之禅看复杂与抽象相关推荐
- python之禅怎么看_如何看待《Python之禅》事件?
当我写文章的时候我就知道会有这个问题出现,本来觉得上周四.五就会出现. 直到<Python之禅>事件之你们想要的实锤 发出,对方发现这下子没法狡辩了,只能搅浑呗.当事实对你有利时,多强调事 ...
- python之禅怎么看_Python之禅
Python之禅 === The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than ...
- 关于python的漫画_以漫画的形式写写Python之禅
#漫画# 题记:我们经常在网络或本地的软件说明文档中,看到一些图形化的字符,看上去很抽象,很简洁,造型也相对明确,是一种计算机图形艺术(美化后的线条表现),因此,小编以为,这些图形化的字符,可以理解为 ...
- python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议
<Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: <Python之禅>中对于Pyt ...
- python之禅中文-Python之禅与翻译之美
对于翻译,我没有什么发言权.我对翻译的了解大多来自思果先生的<翻译研究>和<翻译新究>这两本书.思果先生是著名的散文家.翻译家.说来惭愧,我还未能有幸拜读他的散文,不过只是这两 ...
- python基础教程书籍推荐-初学者python入门必看书籍推荐(上)
随着最近Python的热度上涨,学习的人数也在增多,也因为Python这门语言的简短.易学.语言优美的优点,吸引了很多人来学习它.初学者想要入门,就必须先通过阅读,学习大量的理论知识对Python有一 ...
- python import 原理-Python之禅-import this的实现
学过Python的人想必都听过大名鼎鼎的Python之禅: The Zen of Python, by Tim Peters Beautiful is better than ugly. Explic ...
- python之禅怎么关闭_《Python之禅》中对于Python编程过程中的一些建议
围绕一门语言,学习它的文化精髓,能让你成为一名更优秀的程序员.如果你还没读过Python之禅(Zen of Python) ,那么打开Python的命令提示符输入import this,列表中的每一项 ...
- Python之禅——个人翻译
看过几个版本,不怎么合心意,自己试着翻译了一下,不优雅,好在够简单. Python 之禅优雅胜于丑陋 明确胜于隐晦 简单胜于复杂 复杂胜于艰深 扁平胜于嵌套 稀疏胜于密集 可读性非常重要 就算实用优先 ...
最新文章
- Camera系列规格参数
- Android特色开发之Google MAP
- python下载大文件-使用请求在python中下载大文件
- 支撑微博千亿调用的轻量级RPC框架:Motan
- DL:LinearNN(numpy自定义的) solve XOR problem
- Vue 3响应式原理及实现
- js浏览器窗口大小改变时事件
- Linux 定位网络不通问题
- 自动生成代码:TensorFlow官方工具TF-Coder已开源
- mybatis连接mysql url_MyBatis与JDBC连接数据库所使用的url之间的差异
- 商业数据可视化分析基础知识
- JDK11 下载与安装
- 断面测量数据格式转换
- python交易是什么意思_py交易什么梗?起源及流行原因
- java append 报错_Append HDFS报错 is already the current lease holder
- 论文详解EnlightenGAN: Deep Light Enhancement Without Paired Supervision
- canvas 绘点图
- 数据结构算法---八大排序
- 桌面HTML更换图标,怎样更改桌面图标?更改桌面图标方法【图文详解】
- 【社招和校招】格灵深瞳合肥研发中心计算机视觉算法岗招聘