[Python]編碼規範性(二)——排版
阿新 • • 發佈:2021-11-08
匯入:
(必須遵守)(規則):
10、載入模組必須分開,每個模組佔一行;
一行只能載入一個模組,但,同一個模組內,多個符號,可以在同一行載入;
import 語句有一個變體,可以直接把模組裡的名稱匯入到另一個模組的符號表: >>> from fibo import fib, fib2 >>> fib(500) 這段程式碼不會把模組名匯入到區域性符號表裡(因此,本例沒有定義 fibo) 還有一種變體可以匯入模組內定義的所有名稱: >>> from fibo import * >>> fib(500) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 這種方式會匯入所有不以下劃線(_)開頭的名稱; 大多數情況下,不要用這個功能,這種方式向直譯器匯入了一批未知的名稱,可能會覆蓋已經定義的名稱; 注意,一般情況下,不建議從模組或包內匯入 *, 因為,這項操作經常讓程式碼變得難以理解; 不過,為了在互動式編譯器中少打幾個字,這麼用也沒問題;
11、匯入部分(imports)置於模組註釋和文件字串之後,模組全域性變數和常量宣告之前;
說明:在匯入庫時,按照:標準庫,第三方關聯庫、本地特定的庫/程式順序匯入,並在幾組匯入語句之間增加一個空行;
import os
import sys
from oslo_config import cfg
from cinder import context
from cinder import db
(必須考慮)(建議):
12、避免使用from xxx import * 的方式匯入某模組的所有成員;
說明:from xxx import *
會將其他模組中的所有成員挨個賦值給當前範圍的同名變數 ,如果當前範圍已經有同名變數,則會靜默將其覆蓋;
這種方式容易導致名字衝突,且衝突後不容易定位,應當儘量避免使用;
13、類UNIX作業系統上直接執行的Python檔案頭部,建議使用#!/usr/bin/env python指定直譯器;
類Unix作業系統上使用Hashbang “#!/usr/bin/env python”宣告的時候,會取系統的 PATH 變數中指定的第一個 Python來執行你的指令碼,有助於正確指定執行Python檔案的直譯器。
Hashbang的位置需要放在檔案編碼宣告之前;
Windows作業系統可忽略此建議。
在計算領域中,Shebang(也稱為Hashbang)是一個由“#”和“!”構成的字元序列#! 其出現在文字檔案的第一行的前兩個字元 在檔案中存在Shebang的情況下,類UNIX作業系統的程式載入器會分析Shebang後的內容,將這些內容作為直譯器指令,並呼叫該指令,並將載有Shebang的檔案路徑作為該直譯器的引數