Python 为什么使用缩进来划分代码块?

栏目: IT技术 · 发布时间: 5年前

内容简介:大家好,这是“Python为什么”系列节目的文字稿(本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 “end” 之类的语法?Python 的缩进是一个老生常谈的话题,经常有人提及它,比如

大家好,这是“Python为什么”系列节目的文字稿( 文末有观看地址 )。

本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 “end” 之类的语法?

Python 的缩进是一个老生常谈的话题,经常有人提及它,比如 Python 之父在上个月就恰好转发过一篇文章:

Python 为什么使用缩进来划分代码块?

因为这篇文章,Guido 还受邀在 Python Bytes 播客上录制了一期节目:

Python 为什么使用缩进来划分代码块?
Python 为什么使用缩进来划分代码块?

那么,Python 为什么要用缩进来划分代码块呢?

我收集梳理了几份材料,接下来将带大家一起揭晓 Python 这么做的设计原因:

Python 为什么使用缩进来划分代码块?
  1. 缩进语法,更加优雅

  2. 缩进语法,更加清晰

  3. 使用缩进,保持一致性,避免造成误读

  4. 使用缩进,代码更紧凑,便于浏览,没有累赘

  5. 使用缩进,已足够令解释器执行,没必要使用多余的符号

  6. 强制缩进,源自古老的 ABC 语言,Guido 是这门语言的设计者之一

  7. 其思想可能出自 Don Knuth(高德纳,著名计算机科学家,经典巨著《计算机程序设计艺术》的作者),他在 1974 年提出,在当时是很时髦和前卫的思想

  8. 使用缩进,可以终结大括号放在函数名后面还是再换一行的终极争论(据说此话题能令不同派系的 程序员 大打出手!)

以上罗列的原因主要来源于 Python 官方文档、官方 wiki 以及 Python 之父的早期访谈。

Python 为什么使用缩进来划分代码块?
Python 为什么使用缩进来划分代码块?

总而言之,Python 使用缩进语法,体现了它非常优雅、清晰的设计美学,对开发者、读者以及解释器,都极为友好。

实话说,我本人非常赞许 Python 的缩进,因此才第一眼就迷上了它,如果是使用了花括号之类的语法,那 Python 就顿时黯淡,也就食之无味了!

大家如何看待 Python 的缩进语法呢?请在后台发表你的看法吧!

参考材料:

1、Guido 发的 twitter: https://twitter.com/gvanrossum/status/1249549091584892928

2、Guido 转发的关于缩进的文章: https://web.archive.org/web/20070922223915/http://www.secnetix.de/~olli/Python/block_indentation.hawk

3、Guido 作客 Python Bytes 播客节目,谈论缩进话题: https://pythonbytes.fm/episodes/show/179/guido-van-rossum-drops-in-on-python-bytes

4、播客节目的视频版: https://www.youtube.com/watch?v=PlvvVXeU0yw&feature=youtu.be

5、官方文档对缩进的解释: https://docs.python.org/3/faq/design.html#why-does-python-use-indentation-for-grouping-of-statements

6、官方早期 wiki 的解释: https://wiki.python.org/moin/Why%20separate%20sections%20by%20indentation%20instead%20of%20by%20brackets%20or%20%27end%27

视频地址:

1、B站: https://www.bilibili.com/video/BV1UT4y137Yv

2、知乎: https://www.zhihu.com/zvideo/1242823762849959936


以上所述就是小编给大家介绍的《Python 为什么使用缩进来划分代码块?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解计算机系统(原书第3版)

深入理解计算机系统(原书第3版)

Randal E.Bryant、David O'Hallaron / 龚奕利、贺莲 / 机械工业出版社 / 2016-11 / 139.00元

和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下: 基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。 处理器体系结构修改为支持64位字和操作的设计。 引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。 扩充关于用GOT和PLT创建与位置无关代码的......一起来看看 《深入理解计算机系统(原书第3版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器