python模組結構和布局與 name

2021-07-10 06:13:32 字數 1472 閱讀 8717

用模組來合理組織你的 python **是簡單又自然的方法。你應該建立一種統一且容易閱讀

的結構,並將它應用到每乙個檔案中去。下面就是一種非常合理的布局: 

# (1) 起始行(unix) 

# (2) 模組文件 

# (3) 模組匯入 

# (4) 變數定義 

# (5) 類定義 

# (6) 函式定義 

# (7) 主程式 

圖 3–1 乙個典型模組的內部結構**。 

(1)     起始行 

通常只有在類 unix 環境下才使用起始行,有起始行就能夠僅輸入指令碼名字來執行指令碼,無

需直接呼叫直譯器。 

(2)模組文件 

簡要介紹模組的功能及重要全域性變數的含義,模組外可通過 module.__doc__ 訪問這些內

容。 (3)模組匯入 

匯入當前模組的**需要的所有模組;每個模組僅匯入一次(當前模組被載入時);函式

內部的模組匯入**不會被執行, 除非該函式正在執行。 

(4)變數定義 

這裡定義的變數為全域性變數,本模組中的所有函式都可直接使用。從好的程式設計風格角度說, 

除非必須,否則就要盡量使用區域性變數代替全域性變數,如果堅持這樣做,你的**就不但容易

維護,而且還可以提高效能並節省記憶體。 

(5)類定義語句 

所有的類都需要在這裡定義。當模組被匯入時 class 語句會被執行, 類也就會被定義。類

的文件變數是 class.__doc__。 

(6)函式定義語句 

此處定義的函式可以通過 module.function()在外部被訪問到,當模組被匯入時 def 語句

會被執行, 函式也就都會定義好,函式的文件變數是 function.__doc__。  

(7) 主程式 

無論這個模組是被別的模組匯入還是作為指令碼直接執行,都會執行這部分**。通常這裡

不會有太多功能性**,而是根據執行的模式呼叫不同的函式。

推薦**風格:主程式呼叫 main()函式

由於主程式**無論模組是被匯入還是被直接執行都會執行, 我們必須知道模組如何決定

執行方向。乙個應用程式可能需要匯入另乙個應用程式的乙個模組,以便重用一些有用的**

(否則就只能用拷貝貼上那種非物件導向的愚蠢手段)。這種情況下,你只想訪問那些位於其

它應用程式中的**,而不是想執行那個應用程式。因此乙個問題出現了,「python 是否有

一種方法能在執行時檢測該模組是被匯入還是被直接執行呢?」 答案就是......(鼓聲雷

動).....沒錯! __name__ 系統變數就是正確答案。 

如果模組是被匯入, __name__ 的值為模組名字 

如果模組是被直接執行, __name__ 的值為 '__main__' 

Python模組結構和布局

usr bin env python 1 起始行 coding utf 8 在python中使用本地編碼 this is a test moudle 2 模組文件 import sys 3 模組匯入 import os debug true 4 全域性變數定義 class fooclass obje...

python 模組布局

python標準的模組布局 1 起始行 通常在 nix系統下才使用起始行,起始行的作用是可以通過指令碼名字直接來執行指令碼,起始行一般是 usr bin env python,通過env,系統可以自動搜尋python直譯器的位置 2 模組文件描述 主要介紹模組的功能,可以通過module.doc 訪...

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...