
我有一個習慣,每次學門語言,總要自己寫個List或Stack并加上Unit Test來試試。這次對Python也不例外。總體感覺有以下幾點
1.這是我用過的唯一一個把代碼行的縮進也做為語法的語言,就因為不正確的縮進,我的第一個Python程序讓我吃盡了苦頭。事情是這樣的,我運行測試時,報告每次都說"Ran 0 test in 0.000s",找了半天,也找不出為什么只運行了0個測試,一直以為是unittest包的用法有問題,或我的語法有問題,直到花了大半個小時翻書,又對比其他的測試程序以后,才發(fā)現(xiàn),天啊,原來是因為最后一行的縮進多縮了一層,被認為與上一個方法同一個block。
2.雖然在縮進上吃了苦頭,但是代碼看起來確實相當整潔清楚,感覺比java的動不動一堆大括號相比,實在多了。
3.Python的每個module(可以看作與java的包類似)都可以包含方法和類,而java的所有方法都要寫在類里,包里只有類,這點相當不同。
4.因為Python是用c實現(xiàn)的,它的命名比較簡單,使用很多縮寫,與java的長長一串的命名是很強烈的對比
5.Python是動態(tài)類型的語言,變量不需聲明類型可以直接使用,雖然方便,但缺點也很明顯,那就是變量的類型信息不見了,經(jīng)常搞不清楚方法的參數(shù)要傳入什么,返回什么,挺不習慣的。
6.就因為缺少類型信息,Python的文檔也沒有Java的可讀性強。比如java的 String foo(int a)一看就知道傳入整形返回字符串,換成Python就變成了 foo(a),只能讀文檔才能搞清楚了。可能我還沒習慣的原因吧,感覺有時文檔對它們的類型也說的不太清楚。
總體感覺Python一些風格像C。寫起代碼來,感覺很快,很清楚,還是很不錯的 I love the feeling :)
1.這是我用過的唯一一個把代碼行的縮進也做為語法的語言,就因為不正確的縮進,我的第一個Python程序讓我吃盡了苦頭。事情是這樣的,我運行測試時,報告每次都說"Ran 0 test in 0.000s",找了半天,也找不出為什么只運行了0個測試,一直以為是unittest包的用法有問題,或我的語法有問題,直到花了大半個小時翻書,又對比其他的測試程序以后,才發(fā)現(xiàn),天啊,原來是因為最后一行的縮進多縮了一層,被認為與上一個方法同一個block。
2.雖然在縮進上吃了苦頭,但是代碼看起來確實相當整潔清楚,感覺比java的動不動一堆大括號相比,實在多了。
3.Python的每個module(可以看作與java的包類似)都可以包含方法和類,而java的所有方法都要寫在類里,包里只有類,這點相當不同。
4.因為Python是用c實現(xiàn)的,它的命名比較簡單,使用很多縮寫,與java的長長一串的命名是很強烈的對比
5.Python是動態(tài)類型的語言,變量不需聲明類型可以直接使用,雖然方便,但缺點也很明顯,那就是變量的類型信息不見了,經(jīng)常搞不清楚方法的參數(shù)要傳入什么,返回什么,挺不習慣的。
6.就因為缺少類型信息,Python的文檔也沒有Java的可讀性強。比如java的 String foo(int a)一看就知道傳入整形返回字符串,換成Python就變成了 foo(a),只能讀文檔才能搞清楚了。可能我還沒習慣的原因吧,感覺有時文檔對它們的類型也說的不太清楚。
總體感覺Python一些風格像C。寫起代碼來,感覺很快,很清楚,還是很不錯的 I love the feeling :)
