Python之模組詳細梳理 三

2021-10-24 14:52:38 字數 1576 閱讀 2362

預設情況下,所有的成員都會被匯入。但可以修改__all__變數控制哪些成員可以被匯入。該變數是字串列表(或元組),內部元素是可被匯入的成員名。

示例請看下圖:test1模組中有name、age、height三個成員,__all__變數儲存了這三個成員名。test2模組用from test1 import *匯入test1所有成員,此時test2模組可以正常使用test1的三個成員。

再看下圖:test1模組中__all__變數儲存了三個成員名,但注釋了height這個成員(注意列表的書寫方式,乙個元素一行,用ctrl+/注釋不能被匯入的成員非常方便。如果所有內容寫在一行時就不能注釋內部元素,只能刪除),test2模組用from test1 import *匯入test1的所有成員,此時只能使用name和age這兩個成員,height成員不能使用。

注意:使用import 模組時,__all__不起作用。請看下圖示例,test2模組用import test1匯入test1的所有成員後,即使test1的height成員在__all__變數中被注釋了,仍然可以正常使用。

在大型專案中經常會遇到模組檔案很多的情況,為了方便管理一般會按功能分別建立多個資料夾,在不同資料夾下各自有多個模組,各個模組之間還存在相互引用的情況。今天先梳理一種絕對匯入的方法。

有乙個專案,路徑是d:\python自學筆記\模組,在該專案下有多個模組和資料夾,其中aa資料夾下有b資料夾,b資料夾內有bb.py模組。

注意紅圈的內容,實際上python直譯器會在載入.py檔案時自動生成sys.path列表資訊,sys.path[0]是當前模組的完整路徑,sys.path[1]是當前模組的專案路徑。

現bb模組需要呼叫cc模組的成員num2,可以通過from aa.c.cc import *的方法,其中b模組已知專案路徑是「d:\python自學筆記\模組」,然後加上aa資料夾名再加上.c資料夾名再加.cc模組名,即可絕對匯入cc.py模組中所有的成員。

在專案路徑「d:\python自學筆記\模組」下有test_import.py模組,可以通過絕對匯入的方式匯入bb模組(另外bb模組中已經絕對匯入cc模組,所以相當於同時匯入了bb和cc),還可以通過import匯入同路徑下的test1模組。

絕對路徑匯入方法簡潔易懂,要參與大型專案必須得學會這項技能。深入學python的朋友們最好自行敲**多多練習加以熟練掌握。

Python之模組詳細梳理 五

python包是一種特殊的資料夾,用來存放多個相互關聯的模組檔案和資源檔案,該資料夾下必須有 init py檔案。python首次匯入包時會自動執行 init py檔案。若沒有這個檔案會被視為資料夾,有這個檔案才會被視為包。資料夾jihe下有3個檔案,內容如下 init py檔案 from jihe...

python模組 Python之模組詳細梳理 三

預設情況下,所有的成員都會被匯入。但可以修改 all 變數控制哪些成員可以被匯入。該變數是字串列表 或元組 內部元素是可被匯入的成員名。示例請看下圖 test1模組中有name age height三個成員,all 變數儲存了這三個成員名。test2模組用from test1 import 匯入te...

Python基礎之getpass模組詳細介紹

本文主要給大家介紹了關於python中getpass模組的相關內容,分享出來供www.cppcns.com大家參考學習,話不多說了,來一起看看詳細的介紹 getpass模組提供了平台無關的在命令列下輸入密碼的方法 該模組主要提供 備註 上面為密碼顯示時丟擲的報警 getpass.getuser 該函...