1、主模組和非主模組的定義
在Python 函數中,如果一個函數呼叫了其他函數完成一項功能,我們稱這個函數為主函數,如果一個函數沒有呼叫其他函數,我們稱這種函數為非主函數。主模組和非主模組的定義也類似,如果一個模組被直接使用,而沒有被別人調用,我們稱這個模組為主模組,如果一個模組被別人調用,我們稱這個模組為非主模組。
2、name 屬性
在 Python 中,有主模組和非主模組之分,當然,我們也要區分他們啊。那麼要怎麼區分主模組和非主模組呢?
這就需要用到 __name__ 屬性了,這個 ——name—— 屬性值是一個變量,而這個變數是系統給的。利用這個變數可以判斷一個模組是否是主模組。如果一個屬性的值是 __main__ ,那麼就表示這個模組是主模組,反之亦然。但要注意了:** 這個__main__ 屬性只是幫助我們判斷是否是主模組,並不是說這個屬性決定他們是否是主模組,決定是否是主模組的條件只是這個模組有沒有被人呼叫**
具體看範例:
首先建立了模組lname ,然後判斷是否是主模組,如果是主模組就輸出main 不是,就輸出not main ,首先直接運行該模組,由於該模組是直接使用,而沒有被人調用,所以是主模組,因此輸出了main ,具體看下圖:
然後又建立一個user_lname 模組,裡面只是簡單的導入了lname 模組,然後執行,輸出的結果是not main ,因為lname 模組被該模組呼叫了,所以不是主模組,輸出結果如圖: