为什么 python 使用标识而不是大括号和关键字?

ipl*_*uto -1 python

我一直无法理解的一件事是为什么 python 使用缩进,与其他脚本语言不同。依赖缩进使得编辑 Python 代码有时非常令人沮丧。

附:我有一种强烈的感觉,这个问题因为没有建设性而被关闭。我认为知道这个答案会很有趣。

Max*_*ant 5

我认为你想要的答案在文档中写得很好,我无法比引用文本更好地总结这一点:

\n

为什么 Python 使用缩进来对语句进行分组?

\n
\n

Guido van Rossum 认为,使用缩进进行分组非常优雅,并且对普通 Python 程序的清晰度有很大贡献。大多数人在一段时间后就会喜欢上这个功能。

\n

由于没有开始/结束括号,因此解析器和人类读者感知到的分组之间不会有分歧。有时C程序员会遇到这样的代码片段:

\n
if (x <= y)\n        x++;\n        y--;\nz++;\n
Run Code Online (Sandbox Code Playgroud)\n

只有x++条件为真时才会执行该语句,但缩进会让您相信情况并非如此。即使是经验丰富的 C 程序员有时也会盯着它看很长时间,想知道为什么y即使是x > y.

\n

由于没有开始/结束括号,Python 不太容易出现编码风格冲突。在 C 语言中,有许多不同的方法来放置大括号。如果您\xe2\x80\x99习惯于阅读和编写使用一种风格的代码,那么在阅读(或被要求编写)另一种风格时,您至少会感到有点不安。

\n

许多编码风格将开始/结束括号单独放在一行上。这使得程序变得相当长,并且浪费了宝贵的屏幕空间,使得获得程序的良好概览变得更加困难。理想情况下,一个函数应该适合一个屏幕(例如 20-30 行)。20 行 Python 可以比 20 行 C 做更多的工作。这不仅仅是因为缺少开始/结束括号 \xe2\x80\x93,缺少声明和高级数据类型也是原因 \ xe2\x80\x93 但基于缩进的语法肯定有帮助。

\n
\n

  • @ipluto:不,在开发过程中,程序员的工作量更少,可读性得到了保证。您使用的缩进与 C 中使用的缩进完全相同,但不键入大括号。更少的击键次数、更少的出错地方、更少的需要您或您的编辑器检查的内容……这_确实_意味着您需要一个不太糟糕的编辑器,但无论如何您确实需要它来进行编码。 (3认同)