【转】python吐槽笔记
从Hans Petter Langtangen 的书“A primer on scientific programming with Python”开始学起。这本书学习是不需要任何语言基础的,只要具备高中以上,甚至初中的数学物理知识就可以学习。当然由于没有中文版的,所以还要懂英语。虽然我的英语很渣,不过有四级英语的水平也够用了。
不过在学习的过程中难免会跟其他语言去对比,有些不习惯的地方忍不住要吐槽一番。
(1)'a' is a list; let b=a
这个功能让我蛋疼不已。一旦定义了一个list 'a',然后
b=a
那么a就和b绑定到了一起:如果a的内容增加或者减少,b都会保持同步。这就好像同一个list有两个不同的名字。我实在想象不到这个功能有什么用。
如果你想把a的内容传递给b,而且二者保持独立,那么你需要:
b=a
(2)len 和del function
为什么是function而不是method呢?设计成list的method不是更方便吗?
(3)pprint 和scitools.pprint2
pprint 的意思是“pretty print”。这我就不明白了:如果想打印的好看就使用format print就可以了,就如同c和shell中都有printf命令,何必要整出一个pprint,大多数情况下还是不满足自己的要求。
(4)tuple vs list
既然有list为什么又要tuple呢?难道就是为了防止程序员不小心修改了list的内容吗?程序员怎么就那么不小心呢?
Hans说为什么学习tuple的第三条理由是因为python的软件中经常会用到tuple,所以你应该知道。天哪,这也是理由吗!
好像开始理解为什么python标榜“一个问题只有一个解决方案”了,原来是内置了这么多的冗余功能。
现在刚刚学到这里,便学便总结吧
原文:http://blog.sina.com.cn/s/blog_89cd04dd0101cm81.html