锁定老帖子 主题:Java的堂弟——Python初体验
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-10
Python的代码和Java有着相当的类似度,学习一段时间后,感觉有一种亲切感,所以姑且称呼它为Java的堂弟罢。 虽然Dive Into Python中,声明了Everything is Object,可是使用过程中,我的体会就是Python并非真正的OO,类只不过是比模块小一级的方法组织单位罢了,而非真正的类。从OO的学术角度来说,Python只能打个60分,众多的OO特性,更像是为了OO而凑上去的。 1)动态类型语言,使得单纯从方法接口看出,参数和返回结果是什么类型对象,当然也就毫无所谓的接口之说。 2)粗糙的默认公开和__私有方法,没有保护和包内可见的概念 3)令人生厌,无处不在的self 所有的方法,除了静态方法和类方法,都要以self作为第一个参数。这也就算了,对于成员变量和自己方法的应用,也要加个self. 。 程序小的话,我宁愿直接用module的方法好了,就像python的n个builtin模块一样 4)不方便的log 虽然有类似log4j的东西,但是log的初始化和配置是在程序中进行,不太方便,我也习惯了用print。而在Django这样大的项目中,居然看不到log,是我没找到地方呢?还是真的没log?迷惑中。 优点 Python相对于Java最大的优势,是灵活和简洁。同样的功能,Python中1行的代码,Java往往要用3到5行才能完成。 1)灵活的字符串,方便提供的超长字符串定义 2)简洁,多行,可注释的正则表达式 3)动态语言特性,对AJAX的配合如鱼得水,因为它和JavaScript的OO有着异曲同工之妙 4)丰富的第三方类库,Python有相当的历史了,网站的copyright是1990-2006,在国外已经有丰富的应用基础,常用的第三方类库应有尽有。 关于开发工具,目前用得最好的是PyDev。已经习惯了不断的代码重构,缺乏了这种的支持,感觉很不顺手,而由于Python的动态特性,PyDev的重构还是很不尽如人意,这点让我很怀疑,作为团队开发时,Python的可行性。 总之,Pthon作为一门动态强类型语言,在OO的严谨,和过程式的随意中,取得了一种很好的平衡。虽然不能作为OO教学的一门语言,但是确实是编写中小型软件和系统的好工具。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-04-10
呵呵,俺也补充一下
1 很喜欢 python中的 FP,尽管python并不是纯粹的FP. 2 编辑器,还可以选择vi或者emacs,比如豆瓣基本都是用VI开发的. 3 python中类之上还有metaclass. 4 和c良好的结合. |
|
返回顶楼 | |
发表时间:2007-04-10
只想说python不是java。
|
|
返回顶楼 | |
发表时间:2007-04-10
oo本来就只是python的可选路径之一,不同的应用需要不同的paradigm。
python怎么也说不上是java的堂弟。最多是远房表哥。 |
|
返回顶楼 | |
发表时间:2007-04-10
icetortoise 写道 oo本来就只是python的可选路径之一,不同的应用需要不同的paradigm。 恩,同意,就像dive into python里面说的,python编程的时候你要 Data-centric programming。
python怎么也说不上是java的堂弟。最多是远房表哥。 |
|
返回顶楼 | |
发表时间:2007-04-17
引用 虽然Dive Into Python中,声明了Everything is Object,可是使用过程中,我的体会就是Python并非真正的OO,类只不过是比模块小一级的方法组织单位罢了,而非真正的类。从OO的学术角度来说,Python只能打个60分,众多的OO特性,更像是为了OO而凑上去的。 你是身在此山中,不知真面目。要知道,在python中模块也是一个对象呀 |
|
返回顶楼 | |
发表时间:2007-04-19
写python代码的时候,要的就是随意的感觉,随着思路一气呵成。
用来做C++项目的脚本,是很好的。比如我现在用的S-GeMS。 |
|
返回顶楼 | |
发表时间:2007-04-19
你把python当作java的堂弟,当然有些东西觉得别扭。python这种scripting language,要用新的思想来考虑。比如要考虑context的切换等等。
|
|
返回顶楼 | |
发表时间:2007-04-20
hurricane1026 写道 python我的的感觉是完全可以不用oo的方式编程,反而很舒服。或者说python根本不应该作为java相关的语言,说起来,strong type语言和weak type语言怎么会有血缘关系? 呵呵,python也是强类型语言。
PS;很喜欢python 的FP. |
|
返回顶楼 | |
发表时间:2007-04-20
嗯,python支持多种不同的编程风格。在实际使用的时候很少会受到某种编程风格的制约。
选择自己感觉最舒服的方式来写程序,很快你就会发现自然而然的在编写算法相关的模块时你会用很多的fp programming,而具体模拟现实中的某个应用的模块则会使用很多的oo programming. |
|
返回顶楼 | |