ChinesePython Wiki   Python FAQ6 UserPreferences
 
 ChinesePython Wiki   中蟒大杂院   最近修改   标题目录   文字目录   站内导航   求助 

  1. 6. Python 的设计理念
    1. 6.1 为什 没有 switch 或 case 之类的语句
    2. 6.2 为什  Python 要用缩排的方式来区分程式码段
    3. 6.3 为何 Python 的字串被设成不可变量
    4. 6.4 已失效

6. Python 的设计理念

6.1 为什 没有 switch 或 case 之类的语句

类似的功能可以用连串的 if... elif... elif.. else 来成. 曾经有人提议过要不要加入这个语句, 但到目前为止尚未达成共识, 问题主要出现在要不要(以及假如要的话,怎样做)有 range test 的功能。(译按: 就是像 case 5-34: 或 case Monday - Sunday: 或 case in listx 等.)

6.2 为什  Python 要用缩排的方式来区分程式码段

作者相信 Python 程式之所以如此简明易读很大程度是因为用了这种格式来编程. 很多人经过一段时间后开始喜爱这种优雅的书写方式. 有个看法指出因为没有了开始和结尾的标记号,所以用机器和肉眼分析的程式段会是一致的. 参考以下的例子:

if (x <= y) 
x++; 
y--; 
z++; 

作者曾瞪了这段程式码很长的时间但始终转不过弯来为什 就算 x > y 但 y 的值还是被减了 1. 自然作者当时已不是 c 的新手了。

另一方面因为没有了分段的标号, Python 的编写格式基本上很统一, 不像 c 那样, 大家对於应该作样放置那两个花括号而争论不休. 就算你已经习惯了某种放法, 但当你看其他写的和你不一样的程式时总会觉得有点怪。而且通常惯用的放法是两个花括号都独自各占一行, 如此一来程式会变得很长且浪费了许多宝贵的屏幕空间. 理想的话, 一个函数最好别起过一个终端机的萤幕高度 (比如说是 20 行), 这样我们才能够一眼看出个大概。 以 20 行来说, Python 可以完成的工作可比 c 要多好多好多了. 当然, 这不完全是因为 Python 用缩排格式所致 (Python 也需要变量宣告, 而且 Python 有很强的高阶运算能力), 但这起码会有帮助.

6.3 为何 Python 的字串被设成不可变量

这样做有两个好处. 其一是执行效率: 如果一开始就知道字串是不变的, 在创建时可以更方便一些 -- 因为字串的大小已知且不会改变 (这个原因同样可以用在 list 和 tuple 的分别上). 另一个原因在於 Python 认为字串是很基本的东西, 和常数是一样的. 正如你不可能把数字 '8' 改成别的含意, 你也不可能把 "eight" 改成别的意思. (这是根据 Jim Roskind 的说法.)

6.4 已失效


PythonPowered
编辑文字 of 本页 (上次修改 2004-02-10 18:27:37)
查找页面 by browsing, title search , text search or an index
或尝试以下动作: LikePages, LocalSiteMap, SpellCheck