1. 程式人生 > 其它 >[Python]編碼規範性(二)——排版

[Python]編碼規範性(二)——排版

匯入:

(必須遵守)(規則):

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的檔案路徑作為該直譯器的引數