千家信息网

为什么Python代码应是扁平与稀疏的

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"为什么Python代码应是扁平与稀疏的",在日常操作中,相信很多人在为什么Python代码应是扁平与稀疏的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2026年11月03日为什么Python代码应是扁平与稀疏的

这篇文章主要介绍"为什么Python代码应是扁平与稀疏的",在日常操作中,相信很多人在为什么Python代码应是扁平与稀疏的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"为什么Python代码应是扁平与稀疏的"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

扁平胜过嵌套Flat is better than nested

迫于对缩进的强硬要求,Python 对"扁平化"的需求显然远超它者。其余编程语言为了缓解对缩进的需求,通常会在嵌套结构里加入一种"作弊"的手段。为了理解这一点,不妨一同来看看 JavaScript。

JavaScript 本质上是异步的,这意味着程序员用 JavaScript 写的代码会用到大量的回调函数。

a(function(resultsFromA) {  b(resultsFromA, function(resultsfromB) {    c(resultsFromC, function(resultsFromC) {      console.log(resultsFromC)   }  }}

忽略这段代码的具体内容,只去观察这段代码的形状与缩进带来一个最右边的点的方式。这种独特的"箭头"图形在我们扫看代码时格外扎眼,这种写法也因此被视作不可取,甚至得到了"回调地狱"的绰号。不过,在 JavaScript 中,这种反映嵌套关系的缩进可以通过"作弊"来回避。

a(function(resultsFromA) {b(resultsFromA,  function(resultsfromB) {c(resultsFromC,  function(resultsFromC) {    console.log(resultsFromC)}}}

Python 并没有提供这种作弊手段:每一级嵌套在代码中都如实的对应着一层缩进。因此,Python 深层的嵌套关系在视觉上也一定是深层嵌套的。这使得"回调地狱"的问题对于 Python 而言要比在 JavaScript 中严重得多:嵌套的回调函数必定带来缩进,而绝无使用花括号来"作弊"的可能。

这项挑战与 Python 之禅的指导原则相结合后,在我参与的库中催生出了一个优雅的解决方案。我们在 Twisted 框架里提出了 deferred 抽象,日后 JavaScript 中流行的 promise 抽象亦是受其启发而生。正是由于 Python 对整洁代码的坚守,方能推动 Python 开发者去发掘新的、强力的抽象。

future_value = future_result()future_value.addCallback(a)future_value.addCallback(b)future_value.addCallback(c)

(现代 JavaScript 程序员也许会觉得这段代码十分眼熟:promise 着实受到了 Twisted 里 deferred 抽象的深远影响。)

稀疏胜过密集Sparse is better than dense

最易降低代码密集程度的方法是引入嵌套。这种习惯也正是有关稀疏的原则要随着前一条提出的原因:在竭尽所能地减少嵌套之后,我们往往会遗留下密集的代码或数据结构。此处的密集,是指塞进过量信息的小段代码,它们会导致错误发生后的解析变得困难。

这种密集性唯有通过创造性的思考方可改善,此外别无捷径。Python 之禅并不为我们提供简单的解决方案,它只会指明改善代码的方向,而非提供"如何"去做的向导。

起身走走,泡个热水澡,抑或是闻闻花香。盘坐冥思,直至灵感袭来。当你终于得到启发,便是动身写代码之时。

到此,关于"为什么Python代码应是扁平与稀疏的"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 稀疏 扁平 学习 函数 原则 地狱 手段 方案 方法 更多 深层 程序 程序员 结构 解决方案 问题 需求 帮助 强硬 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 深圳九邦互联网科技有限公司 云信互联网科技有限公司 喔噻互联网科技 上海挚品互联网科技 北京互联网络科技有限公司 时间互联网络科技 互联网科技论坛 海南购全球互联网科技 互联网经济与金融科技 福建科技产业互联网发展 杭州壁岐互联网科技有限公司 健康食品互联网创新科技园项目 华夏恒生互联网科技013171 高科技互联网发展前景如何 玉溪新华互联网科技好不好 特约风豹互联网科技为什么扣费 元气玛特互联网科技公司是外包吗 互联网公司属于科技吗 每日互联网科技新闻 中资互联网科技 互联网汽车科技小镇 互联网金融科技公司干啥的 世界互联网科技公司市值排名 宝灵互联网科技有限公司 互联网科技公司有风险吗 江阴互联网智能科技产品进口 天津腾达互联网科技有限公司 智帮互联网科技公司最近动向 电子商务与互联网科技的关系
0