天天看點

《Abaqus GUI程式開發指南(Python語言)》——2.11 包導入

本節書摘來自異步社群《abaqus gui程式開發指南(python語言)》一書中的第2章,第2.11節,作者: 賈利勇 , 富琛陽子 , 賀高 , 周正光 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

前面介紹了子產品的導入方法,除了導入一個子產品名之外,python還可以導入指定的目錄路徑,python代碼的目錄就稱為包,這類對目錄的導入就稱為包導入。實際上,包導入是把計算機上的目錄變成另一個python的命名空間,而屬性則對應目錄中所包含的子目錄和子產品檔案。

包導入對于組織大型系統内的檔案會很友善,而且可以簡化子產品搜尋路徑的設定,本書第六章“使用者自定義gui應用程式開發指南”中采用了大量的包導入執行個體。

【文法】包導入的文法與子產品導入類似,差別在于包導入時需要指定檔案的路徑。

上述語句中的“點号”路徑與計算機上的目錄路徑一緻,dir1為一級目錄,dir2為dir1中的二級子目錄,dir2中包含了一個名為module_name.py的子產品檔案,同樣,該子產品檔案中定義了名為function_name的函數。

需要注意的是,在使用包導入時,包導入語句所提及路徑中的每個目錄内都必須有一個init.py檔案,否則導入包會失敗。init.py檔案的作用是将目前檔案夾标記為一個包,相當于包的注冊檔案,init.py的内容可以為空。

讀者可以将常用的代碼合并到一個包中,通過調用該包内的各個子產品來實作代碼的重用。圖2.2為包、子產品和函數三者之間的關系圖,每個包内可以包含多個子包或子產品,且每一級包内都必須包含init.py檔案,另外,每個子產品檔案内可以定義多個函數。

《Abaqus GUI程式開發指南(Python語言)》——2.11 包導入

【執行個體2.38】包的定義及調用

本執行個體的源代碼存放于随書配套資源chapter22.11中。

按照圖2.2所示的組織結構圖,在abaqus的工作目錄下,例如d:temp檔案夾内建立一個名為package的檔案夾,該檔案内建立兩個子檔案夾(subpackage1和subpackage2)和一個init.py檔案,subpackage1内建立一個子產品檔案module1.py和一個init.py檔案,module1.py源代碼如下。

然後在subpackage2内建立一個子包subpackage3、一個子產品檔案module2.py和一個init.py檔案,同樣,在subpackage3内建立一個子產品檔案module3.py和一個init.py檔案,module3.py源代碼如下。

上述定義完成後,在abaqus gui指令互動行輸入以下指令并檢視計算結果。

如果将subpackage1中的init.py檔案删除,然後重新執行包導入指令,則會出現以下提示錯誤。

提示

在abaqus gui圖形界面開發過程中,将大量運用包導入,尤其是自定義gui應用程式的開發過程中(詳見本書第六章内容),使用包導入可以輕松地找到對應檔案,簡化檔案搜尋路徑設定,使複雜程式的組織結構更加清晰,提高代碼的可讀性,同時也便于對代碼進行管理。本節僅簡要介紹了包導入的概念和使用方法,更多關于包導入的知識請參照其他python語言書籍。