Python編程語言與其他語言的學習區(qū)別
Python編程語言在學習的時候有不少的問題存在,下面我們就詳細的學習下相關的語言。先我們就來看看如何進行學習。學習Python編程語言一小段時間了,太高層次的話題就不說了。
層次放低一點,就說說在實際編程中,體會到的Python和JAVA的區(qū)別。學習不久,認識有限,希望大家多指正,而我也會不斷完善這篇文章。
Python編程語言的代碼和Java有著相當的類似度,學習一段時間后,感覺有一種親切感,所以姑且稱呼它為Java的堂弟罷。
雖然Dive Into Python中,聲明了Everything is Object,可是使用過程中,我的體會就是Python并非真正的OO,類只不過是比模塊小一級的方法組織單位罷了,而非真正的類。從OO的學術角度來說,Python只能打個60分,眾多的OO特性,更像是為了OO而湊上去的。#t#
1)動態(tài)類型語言,使得單純從方法接口看出,參數和返回結果是什么類型對象,當然也就毫無所謂的接口之說。
2)粗糙的默認公開和__私有方法,沒有保護和包內可見的概念
3)令人生厭,無處不在的self
所有的方法,除了靜態(tài)方法和類方法,都要以self作為第一個參數。這也就算了,對于成員變量和自己方法的應用,也要加個self. 。 程序小的話,我寧愿直接用module的方法好了,就像Python編程語言的n個builtin模塊一樣
4)不方便的log
雖然有類似log4j的東西,但是log的初始化和配置是在程序中進行,不太方便,我也習慣了用print。而在Django這樣大的項目中,居然看不到log,是我沒找到地方呢?還是真的沒log?迷惑中。
Python編程語言優(yōu)點
Python編程語言相對于Java最大的優(yōu)勢,是靈活和簡潔。同樣的功能,Python中1行的代碼,Java往往要用3到5行才能完成。
1)靈活的字符串,方便提供的超長字符串定義
2)簡潔,多行,可注釋的正則表達式
3)動態(tài)語言特性,對AJAX的配合如魚得水,因為它和JavaScript的OO有著異曲同工之妙
4)豐富的第三方類庫,Python編程語言有相當的歷史了,網站的copyright是1990-2006,在國外已經有豐富的應用基礎,常用的第三方類庫應有盡有。
關于開發(fā)工具,目前用得最好的是PyDev。已經習慣了不斷的代碼重構,缺乏了這種的支持,感覺很不順手,而由于Python的動態(tài)特性,PyDev的重構還是很不盡如人意,這點讓我很懷疑,作為團隊開發(fā)時,Python編程語言的可行性。
總之,Python編程語言作為一門動態(tài)強類型語言,在OO的嚴謹,和過程式的隨意中,取得了一種很好的平衡。雖然不能作為OO教學的一門語言,但是確實是編寫中小型軟件和系統(tǒng)的好工具。