初识动态语言
最近剛看了看動態語言,說來也慚愧,從剛學第一種編程語言到現在也差不多十年了,
卻從沒重視過/關注過動態語言,可總有那么一批人狂熱的愛著她們,可供選擇的很多,
perl,php,python,ruby,甚至unix shell,從總體來說,我還算是個中庸的人,所有我
選擇了python為起點,ruby過于激進(包括她的粉絲也是),而且資料并不多,前兩
種感覺又太“俗”,俗得跟JS,VB,C#,JAVA一樣,(請原諒我這么說了,也許我想
表達的意思是說它們用得有些太多,很難給人一種新鮮的感覺),只有python,從資
料,工具,庫,社區等各個方面都覺得剛剛好。
用習慣了傳統靜態語言的人,一看PYTHON也許都覺得太隨意了,有點不習慣。就如同我
前面轉載的文章一樣,一群JAVA程序員為PYTHON開發了一堆效率極低的庫,因為JAVA
程序員滿腦子的封裝,設計模式,框架,配置文件,好象同PYTHON的隨意性格格不
入。
我說一個例子,在PYTHON中,產生/捕獲異常的方式就很有意思:
1、如果你不想太麻煩,你完全可以不定義你的異常,直接:
raise "BadError", "just a exception"
請注意,BadError只是個字符串而已,你從來沒有定義過它,捕獲時:
except "BadError",ev
?print ev????? #打出just a exception
2、當然,你也可以定義你的異常類(甚至異常層次關系,就象在JAVA中的一樣)
class BadError:
??? """exception for every thing"""
??? def __init__(self, a, b):
??????? self.aa = a
??????? self.bb = b
??? def printx(self):
??????? print "bad error"
??? def __str__(self):
??????? print self.aa, self.bb
拋:
raise BadError("aa", "bb")
如果只有一個參數,你甚至也可以:
raise BadError, "aa"
捕獲:
except BadError,ex:
????? print "error",ex
或
except BadCfrError,ex:
??????? print "error",ex.aa,ex.bb
是不是覺得有點亂,反正這是我最初的感覺,也是這的確跟JAVA,C#之類的語言不太一樣,
好象不太嚴謹,怎么來都行,但我相信,一旦習慣了,一定會享受這樣隨意性的!!?
總結
- 上一篇: 妈妈的生日
- 下一篇: 厌倦了SWT TABLE,何不试试KTA