为什么我们要用Python
2015-01-15 11:26
106 查看
最近有一个朋友问我:为什么我要用Python,这是一个好问题,今天有空,把这个问题简单整理了一下,回来朋友的问题。该整理主要来源于网络和其他资料,如果有侵权还请告知。 Python的好处主要有以下几种(来源自《集体智慧编程》英文版《Programming Collective Intelligence Building Smart Web 2.0 Applications》这本书: 简练
使用像Python这样的动态类型语言编写的代码往往比用其他主流语言编写的代码更加简短。这意味着,在完成示例的过程中会有更少的录入工作,而且这也意味着我们将更容易记住算法并真正领会算法的原理。 易于阅读
Python不时被人们指为“可执行的伪代码”。虽然很明显这是夸大之词,但是它表明,大多数有经验的程序员可以读懂Python代码并领会代码所要表达的意图。 易于安装
不管是Windows,Linux还是Mac系统,只要配置好Python的环境,只需要easy_install XX或者pip install XX 就可以安装所需要的第三方扩展包。当然,对于Windows 64bit的操作系统来说,可能稍微麻烦一点,有些会出现兼容性问题,不过也都可以找到相应的解决方案。 易于扩展
Python附属了很多的标准库,这些涉及数据函数,XML解析,以及网页下载(笔者注:Python的BeautifulSoup是笔者见过的做好的HTML/XML解析工具之一,速度快,文档例子非常多),RSS解析,SQLLite等等 交互性
Python可以直接从命令行运行程序,它还有交互提示,允许我们键入函数调用,创建对象,并以交互的形式对包进行测试。
多范式
Python支持面向对象,过程式和函数式的编程风格。机器学习算法千差万别,最为清晰的做法是针对不同算法采用不同的范式。有时将函数作为参数传入很有用处,而有时我们则需要再对象中捕获状态。对于这两种方式,Python都比较好的予以支持。
多平台和开源免费
Python有一个针对所有主流平台的单一参考实现,并且对所有的平台都是免费的。Linux和Mac系统一般都是自带Python的环境。Windows需要自行安装,从visual studio 2013开始,微软平台也开始支持Python的开发功能。
在这里还有一个需要格外注意的事情,对于Python来言,Python 解释器不是完全线程安全的。在Python 多线程当中,存在一个叫Global Interpreter Lock(GIL)的东西,直译就是全局解释器锁。它的作用在于让同一时刻只能有一个线程对于python对象进行操作。Python已经提供了各种机制让我们进行多线程同步,为什么又要整这个GIL呢?这是因为程序员控制的同步是对各个程序中可见的变量,而GIL同步的是解释器后台的不可见变量,比如为了进行垃圾回收而维护的引用计数。如果没有GIL,有可能出现由于线程切换导致的对同一个对象释放两次的情况。这点需要格外注意。
关于为什么要用Python也可以参照如下的两篇博客描述
为什么要使用Python:http://blog.csdn.net/caimouse/article/details/41550045 为什么我们要用Python:http://www.cnblogs.com/huxi/archive/2010/12/19/1910425.html Python 论优缺点:http://www.cnblogs.com/xupeizhi/archive/2012/07/21/2602861.html Python线程状态和全局解释器锁:http://blog.csdn.net/cglover/article/details/2566450
额外追加一张Python与Java的一个实现对比:
来源网站:http://spark.apache.org/examples.html
来自为知笔记(Wiz)
使用像Python这样的动态类型语言编写的代码往往比用其他主流语言编写的代码更加简短。这意味着,在完成示例的过程中会有更少的录入工作,而且这也意味着我们将更容易记住算法并真正领会算法的原理。 易于阅读
Python不时被人们指为“可执行的伪代码”。虽然很明显这是夸大之词,但是它表明,大多数有经验的程序员可以读懂Python代码并领会代码所要表达的意图。 易于安装
不管是Windows,Linux还是Mac系统,只要配置好Python的环境,只需要easy_install XX或者pip install XX 就可以安装所需要的第三方扩展包。当然,对于Windows 64bit的操作系统来说,可能稍微麻烦一点,有些会出现兼容性问题,不过也都可以找到相应的解决方案。 易于扩展
Python附属了很多的标准库,这些涉及数据函数,XML解析,以及网页下载(笔者注:Python的BeautifulSoup是笔者见过的做好的HTML/XML解析工具之一,速度快,文档例子非常多),RSS解析,SQLLite等等 交互性
Python可以直接从命令行运行程序,它还有交互提示,允许我们键入函数调用,创建对象,并以交互的形式对包进行测试。
多范式
Python支持面向对象,过程式和函数式的编程风格。机器学习算法千差万别,最为清晰的做法是针对不同算法采用不同的范式。有时将函数作为参数传入很有用处,而有时我们则需要再对象中捕获状态。对于这两种方式,Python都比较好的予以支持。
多平台和开源免费
Python有一个针对所有主流平台的单一参考实现,并且对所有的平台都是免费的。Linux和Mac系统一般都是自带Python的环境。Windows需要自行安装,从visual studio 2013开始,微软平台也开始支持Python的开发功能。
在这里还有一个需要格外注意的事情,对于Python来言,Python 解释器不是完全线程安全的。在Python 多线程当中,存在一个叫Global Interpreter Lock(GIL)的东西,直译就是全局解释器锁。它的作用在于让同一时刻只能有一个线程对于python对象进行操作。Python已经提供了各种机制让我们进行多线程同步,为什么又要整这个GIL呢?这是因为程序员控制的同步是对各个程序中可见的变量,而GIL同步的是解释器后台的不可见变量,比如为了进行垃圾回收而维护的引用计数。如果没有GIL,有可能出现由于线程切换导致的对同一个对象释放两次的情况。这点需要格外注意。
关于为什么要用Python也可以参照如下的两篇博客描述
为什么要使用Python:http://blog.csdn.net/caimouse/article/details/41550045 为什么我们要用Python:http://www.cnblogs.com/huxi/archive/2010/12/19/1910425.html Python 论优缺点:http://www.cnblogs.com/xupeizhi/archive/2012/07/21/2602861.html Python线程状态和全局解释器锁:http://blog.csdn.net/cglover/article/details/2566450
额外追加一张Python与Java的一个实现对比:
来源网站:http://spark.apache.org/examples.html
来自为知笔记(Wiz)
相关文章推荐
- 我们为什么从Python转到go?
- Python简介、特点,我们为什么要学习python
- 为什么我们要python
- 在编程互汇的时代,我们为什么要选择学习Python?
- 我们为什么选择用 Python 来开发 Quora
- 为什么我们要学习Python?
- 我们为什么娶不到,我们为什么嫁不掉
- 我们为什么浮躁?
- 我们为什么嫁不掉
- 为什么我们没有老板赚钱多
- 南方都市报评论:我们为什么一定要学外语?
- [转贴]我们为什么选择深圳
- 转贴 为什么我们总是比别人钱少
- 为什么我们的软件不及印度
- 为什么我们要一遍一遍重复?
- 为什么我们的软件不及印度
- 恍然大悟!?为什么我们总是比别人钱少
- 我们为什么而学?(摘自<本领恐慌>)
- 我们为什么还要向日本学习?
- 赵晓:我们为什么还要向日本学习?