初识动态语言


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值