9/07/2006

python,没有类型声明真的很爽吗?

这些天抽空看了一下python,和所有的脚本语言一样在声明变量时无须 声明其类型,包括方法参数也是一样。
这样的好处自然是显而易见的,对于快速代码来说也非常有好处,可是在用到方法定义中却不见得是个好的选择。
为了避免类型错误,不得不总写type(arg)==type("")这类的语句,然后自己抛出TypeError。在一个类中也由此产生了interface method和internal method,其实internal method只是为了写这些无聊的类型检察。

写到这个地方,不得不说还是有类型好,至少虚拟机可以帮我做类型检察,尤其实在编码期就可以检查问题,不然只有到了运行期才能发现这些错误。目前还不知道那个IDE可以做职能的代码分析以发现类型错误。如果有的话,似乎还可以接受。

显然对于只写一个
def print_string(str):
    """print a string"""
    print str
来说非要写成
def print_string(str):
    """print a string"""
    if type(str) != type(""):
        raise TypeError, "print_str requires a string, given a %s" % type(str)
    print str
显然是够烦人的,一个参数也就罢了,要是一个方法有三四个参数,写这个代码非郁闷死,当然还有一个选择,就是压根不写类型检查,不过这样子程序的结果就不好预期了。


目前已经发现一个不爽,继续看下去先~

No comments: