最近刚看了看动态语言,说来也惭愧,从刚学第一种编程语言到现在也差不多十年了,
却从没重视过/关注过动态语言,可总有那么一批人狂热的爱着她们,可供选择的很多,
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#之类的语言不太一样,
好象不太严谨,怎么来都行,但我相信,一旦习惯了,一定会享受这样随意性的!!