爲何 Python 代碼要寫得美觀而明確

歡迎閱讀「Python 光明節(Pythonukkah)」系列文章,這個系列文章將會討論《Python 之禪》。咱們首先來看《Python 之禪》裏的前兩個原則:美觀與明確。python

早在 1999 年,Python 的貢獻者之一,Tim Peters 就提出了《Python 之禪》,直到二十年後的今天,《Python 之禪》中的 19 條原則仍然對整個社區都產生着深遠的影響。爲此,就像慶典光明的光明節Hanukkah同樣,咱們舉行了這一次的「Python 光明節Pythonukkah」。首先,咱們會討論《Python 之禪》中的前兩個原則:美觀和明確。linux

「Hanukkah is the Festival of Lights,git

Instead of one day of presents, we get eight crazy nights.」程序員

—亞當·桑德勒,光明節之歌github

美觀勝於醜陋

著名的《計算機程序的構造和解釋Structure and Interpretation of Computer Programs》中有這麼一句話:代碼是寫給人看的,只是剛好能讓機器運行。Programs must be written for people to read and only incidentally for machines to execute.機器並不在意代碼的美觀性,但人類在意。ruby

閱讀美觀的代碼對人們來講是一種享受,這就要求在整套代碼中保持一致的風格。使用諸如 Blackflake8Pylint 這一類工具可以有效地接近這一個目標。網絡

但實際上,只有人類本身才知道什麼纔是真正的美觀。所以,代碼審查和協同開發是其中的不二法門,同時,在開發過程當中傾聽別人的意見也是必不可少的。ide

最後,我的的主觀能動性也很重要,不然一切工具和流程都會變得毫無心義。只有意識到美觀的重要性,才能主動編寫出美觀的代碼。工具

這就是爲何美觀在衆多原則當中排到了首位,它讓「美」成爲了 Python 社區的一種價值。若是有人要問,」咱們真的在意美嗎?「社區會以代碼給出確定的答案。設計

明確勝於隱晦

人類會歡慶光明、害怕黑暗,那是由於光可以讓咱們看到難以看清的事物。一樣地,儘管有些時候咱們會不自覺地把代碼寫得含糊不清,但明確地編寫代碼確實可以讓咱們理解不少抽象的概念。

「爲何類方法中要將 self 顯式指定爲第一個參數?」

這個問題已是老生常談了,但網絡上不少流傳已久的回答都是不許確的。在編寫元類metaclass時,顯式指定 self 參數就顯得毫無心義。若是你沒有編寫過元類,但願你能夠嘗試一下,這是不少 Python 程序員的必經之路。

顯式指定 self 參數的緣由並非 Python 的設計者不想將這樣的元類視爲「默認」元類,而是由於第一個參數必須是顯式的。

即便 Python 中確實容許非顯式的狀況存在(例如上下文變量),但咱們仍是應該提出疑問:某個東西是否是有存在的必要呢?若是非顯式地傳遞參數會不會出現問題呢?有些時候,因爲種種緣由,這是會有問題的。總之,在寫代碼時一旦可以優先考慮到明確性,至少意味着能對不明確的地方提出疑問並對結果做出有效的估計。


via: opensource.com/article/19/…

做者:Moshe Zadka 選題:lujun9972 譯者:HankChow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章
相關標籤/搜索