Python可以减少代码量?我不信
突然看到好幾篇文章,內容基本上是什么用Java需要100行,用PHP只需要30行,用Python只需要10行(數字記不清了)。簡單說一下我的看法。
我不服,憑啥都是編程語言,你行我就不行?
我記不清當時給出的支持Python可以少寫代碼的栗子具體是什么了,它給出的是實現了某個功能,兩行搞定,一行引入,一行調用。
當時看的我一臉懵逼,哇,真的耶。只用一行就可以。但稍后一想,這也太扯了吧。你看著貌似是只調用了一行代碼,但里邊具體的實現不還是有的么?代碼量并沒有減少,只不過是搬到了你看不到的地方,假象罷了。
當然,我是支持用Python可以少寫代碼的,但并不是剛才說的那樣。
在我看來,這個問題得從語法層面來說,只有語法支持,才算真的能夠減少代碼量。其實各個語言都有其特定的語法。就像PHP中變量直接當函數用,直接當類用,連反射都不用了。
舉個栗子就是大家都熟悉的lambda。現在有一個需求,要接收外部穿進來的函數。給出不同語言的實現
Java版本
// 因為Java中一切都是對象,所以盡管提供了lambda的支持,但并不能直接調用函數,而是以接口的形式調用 interface MathTest {int add(int a, int b); } // 接收lambda的函數 void dispose(MathTest mt){int v = mt.add(1, 3); } // 調用函數的地方 dispose((x, y) -> x + y)因為Java一切皆是對象,lambda其實就是一個匿名內部類。
PHP版本
// 接收函數 function dispose($fun){$v = $fun(1, 3); } // 調用的地方 dispose(function($a, $b){return $a + $b; }); ?PHP可以直接傳函數,已經很方便的,但是不支持lambda,還是需要正兒八經的寫個函數傳過去。
Python版本
def dispose(fun):v = fun(1, 3) dispose(lambda x, y: x+y)Python既可以直接傳函數,又支持lambda表達式。
當然,還有一些其他的語法,是可以稍稍體現一哈Python的獨到之處的。嘿嘿
簡單羅列了一些Python的語法支持,確實是不用寫過多代碼就能實現相關功能。
元素交換
a,b = b,a實現兩個元素值的交換,無需臨時變量。
數組生成
list = [x for x in range(20) if x%2 == 0]生成偶數列表,這個一行搞定,舒服。
列表切片
list[1:4]對列表的各種切片操作。
其實,Python最大的特點就是,他沒有大括號。剛開始從Java到Python時,看著沒有大括號的程序,很順眼。但現在用了一段時間的PHP,又突然感覺沒有大括號有點別扭。哼,男人。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Python可以减少代码量?我不信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流媒体通信协议HLS与DASH的对比
- 下一篇: 页面加载速度-合并资源文件