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