Linux中國

為什麼 Python 代碼要寫得美觀而明確

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

「Hanukkah is the Festival of Lights,

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

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

美觀勝於醜陋 Beautiful is better than ugly

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

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

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

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

這就是為什麼美觀在眾多原則當中排到了首位,它讓「美」成為了 Python 社區的一種價值。如果有人要問,」我們真的在乎美嗎?「社區會以代碼給出肯定的答案。

明確勝於隱晦 Explicit is better than implicit

人類會歡慶光明、懼怕黑暗,那是因為光能夠讓我們看到難以看清的事物。同樣地,儘管有些時候我們會不自覺地把代碼寫得含糊不清,但明確地編寫代碼確實能夠讓我們理解很多抽象的概念。

「為什麼類方法中要將 self 顯式指定為第一個參數?」

這個問題已經是老生常談了,但網路上很多流傳已久的回答都是不準確的。在編寫 元類 metaclass 時,顯式指定 self 參數就顯得毫無意義。如果你沒有編寫過元類,希望你可以嘗試一下,這是很多 Python 程序員的必經之路。

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

即使 Python 中確實允許非顯式的情況存在(例如上下文變數),但我們還是應該提出疑問:某個東西是不是有存在的必要呢?如果非顯式地傳遞參數會不會出現問題呢?有些時候,由於種種原因,這是會有問題的。總之,在寫代碼時一旦能夠優先考慮到明確性,至少意味著能對不明確的地方提出疑問並對結果作出有效的估計。

via: https://opensource.com/article/19/12/zen-python-beauty-clarity

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

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國