欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

什么代碼風格算是python風格?

黃文隆2年前17瀏覽0評論

我的理解應該是大家口中所說的pythonic,什么是pythonic?其實是很難定義,我們無法通過搜索引擎找到準確的答案。但很難定義的概念絕非意味著其定義沒有價值,尤其不能否定它對編寫優(yōu)美python代碼的指導作用。

對于pythonic的概念,就像“一百個觀眾有一百個哈姆雷特”,但大家心目中都認同一個具體的指南,那就是TimPeters的《TheZenofPython》,充滿詩意,有幾點非常深入人心:

  • 美勝丑,顯勝隱,簡勝雜,雜勝亂,平勝陡,疏勝密。

  • 找到簡單問題的一個就方法,最好是唯一的方法。

  • 難以解釋的實現(xiàn),源自不好的主意;如有非常棒的主意,它的實現(xiàn)肯定易于解釋。

遵循Pythonic的代碼,看起來就像偽代碼。其實,所有的偽代碼都可以輕易地轉換為可執(zhí)行的代碼。所以,綜合地說,Pythonic可以這么理解:充分體現(xiàn)Python自身特色的代碼風格。

例子1,變量交換值

inta=1,b=2;inttemp=a;a=b;b=temp;

pythonic的代碼只需要一行:

a,b=b,a

例子2,遍歷

length=len(alist);i=0;whilei<length:do_sth_with(alist[i])i+=1

pyhonic的代碼如下所示:foriinalist:do_sth_with(i)

靈活地使用迭代器是一種Python風格。比如,需要安全地關閉文件描述符,可以用以下with語句:withopen(path,'r')asf:do_sth_with(f)

通過上述代碼的對比,能讓大家清晰地認識到Pythonic的一個要求,就是對Python語法本身的充分發(fā)揮,寫出來的代碼帶著python味兒,而不是看著像C語言代碼,或者Java代碼。

例子3,標準庫

寫pythonic程序需要對標準庫有充分的理解,特別是內置函數(shù)和內置數(shù)據(jù)類型。比如,對于字符串格式化,一般這樣寫:print'Hello%s!'%('Tom',)

其實%s是非常影響可讀性的,因為數(shù)量多了以后,很難清楚哪一個占位符對應哪一個實參,所以相對應的pythonic代碼是這樣的:print'Hello%(name)s!'%('name':'Tome')

上面舉的例子是Pythonic的編程風格,有的回答說PEP8,我的理解PEP8是一種編程規(guī)范,和python的風格還是有點區(qū)別的。就像你用一個中間變量交換值,PEP8是不會提示有問題,會通過PEP的檢測。但是不是一種Pythonic的風格。