Python附帶了一大堆標準模組,實現了廣泛的功能,包括文字處理,各種資料型別,網路內容(低階和高階),文件處理,檔案存檔處理,日誌記錄所有這些都記錄在Python庫文件中,因此必須至少瀏覽可用模組列表,因此您可以獲得預設情況下可以使用的概念。示例:如果您沒有任何效能需求,請不要在Twisted上引入依賴項來實現非常基本且簡單的自定義HTTP伺服器,請使用BaseHTTPServer和衍生項。
Python是Python,不要試圖模仿來自其他語言的錯誤編碼模式
Python是一種成熟的程式語言,它提供了很大的靈活性,但也有一些非常具體的模式,你可能不知道以前使用過的其他語言。
舉個例子,根本不要試圖模仿PHP的"include"或"require"函式。這可以透過在頂層的模組中編寫要包含(並在包含上執行)的程式碼(即不在函式/ classes / ...中),並使用類似"from foo import *"的內容來完成。你想要執行這個程式碼。這可行,但可能很難維持這一點。模組不應該像這樣使用,所以不要這樣。如果您需要在某個時刻執行某些程式碼,請將其作為函式放入模組中,匯入該函式並在任何位置呼叫它。
不要汙染全域性名稱空間
不要使用"from foo import *",因為這會引入foo中定義的所有內容,還會引入foo中匯入的所有模組,甚至可能匯入它們等等。嘗試"import foo"和使用foo.whatever,或者使用"from foo import whatever,somethingelse"。顯式匯入使程式碼更具可讀性,並且可以更容易地確定在當前模組中使用的模組中定義的內容,如果它是由您的許多全域性匯入之一匯入的話。
使用Pythonesque編碼模式
這顯然與前一項非常相關。Python有一些眾所周知的結構來處理某些情況。瞭解並理解它們。
記錄您的程式碼
Python具有稱為docstrings的強大語言功能。嚴格地將它們灑在整個程式碼中。在編寫函式/類時執行此操作,而不是之後。每個人都知道這非常無聊和令人沮喪。
寫測試
編寫測試程式碼。Python包括至少2種編寫測試的方法:使用標準單元測試,或使用doctests,包含在文件字串中的測試程式碼片段,既有用又有說明性。如果您無法測試結果,則無法知道某些程式碼重構是否順利。
Python附帶了一大堆標準模組,實現了廣泛的功能,包括文字處理,各種資料型別,網路內容(低階和高階),文件處理,檔案存檔處理,日誌記錄所有這些都記錄在Python庫文件中,因此必須至少瀏覽可用模組列表,因此您可以獲得預設情況下可以使用的概念。示例:如果您沒有任何效能需求,請不要在Twisted上引入依賴項來實現非常基本且簡單的自定義HTTP伺服器,請使用BaseHTTPServer和衍生項。
Python是Python,不要試圖模仿來自其他語言的錯誤編碼模式
Python是一種成熟的程式語言,它提供了很大的靈活性,但也有一些非常具體的模式,你可能不知道以前使用過的其他語言。
舉個例子,根本不要試圖模仿PHP的"include"或"require"函式。這可以透過在頂層的模組中編寫要包含(並在包含上執行)的程式碼(即不在函式/ classes / ...中),並使用類似"from foo import *"的內容來完成。你想要執行這個程式碼。這可行,但可能很難維持這一點。模組不應該像這樣使用,所以不要這樣。如果您需要在某個時刻執行某些程式碼,請將其作為函式放入模組中,匯入該函式並在任何位置呼叫它。
不要汙染全域性名稱空間
不要使用"from foo import *",因為這會引入foo中定義的所有內容,還會引入foo中匯入的所有模組,甚至可能匯入它們等等。嘗試"import foo"和使用foo.whatever,或者使用"from foo import whatever,somethingelse"。顯式匯入使程式碼更具可讀性,並且可以更容易地確定在當前模組中使用的模組中定義的內容,如果它是由您的許多全域性匯入之一匯入的話。
使用Pythonesque編碼模式
這顯然與前一項非常相關。Python有一些眾所周知的結構來處理某些情況。瞭解並理解它們。
記錄您的程式碼
Python具有稱為docstrings的強大語言功能。嚴格地將它們灑在整個程式碼中。在編寫函式/類時執行此操作,而不是之後。每個人都知道這非常無聊和令人沮喪。
寫測試
編寫測試程式碼。Python包括至少2種編寫測試的方法:使用標準單元測試,或使用doctests,包含在文件字串中的測試程式碼片段,既有用又有說明性。如果您無法測試結果,則無法知道某些程式碼重構是否順利。