DevOps-Programming Basics with Python 13

Modules

ZONGRU Li
May 28, 2023

在程式撰寫的時候,總不可能一個py文字檔就寫完一整個應用程式

可能會寫許多Function散落在不同的py文字檔內

並提供給其他py檔程式調用

這邊就要引入PythonModules寫法

先清空除了main以外的py文字檔

當前的main.py有以下內容:

建立helper.py當成module,把上述兩個Function都移過去:

剩下的main.py:

helper.py:

這時候main.py要引用到helper.py內的Function

就需要import來導入module

寫法如下:

但是這時候helper還是有錯誤:

所以要改造Function變成傳入參數的形式

使用端就要餵入參數:

這時候可以注意到main.py內不需要days_to_units這個Function

days_to_units這個Function僅用來服務helper.py內的validate_and_execute

但假若helper內有20Function,但我們main只需要其中一個的狀況

而目前main裡面的寫法其實是引入了helper全部的Function

所以可以改寫為如下僅引入我們要的validate_and_execute這個Func.:

另外module還能夠提供變數

例如:

轉移到helper內:

也可能會有人這樣寫,也可以做到引用所有helper內的物件:

但是這個一樣會引入全部Func.與變數,即便很多是不必要的

上述兩種不同引入helper這個module型式

如果使用上述第二種直接import module的型式

則還可以替module改名變成:

講師這邊還是偏好使用第一種:

但是實際專案可能有上百個py檔,還是依據情況選要調用module的方式

Built-In Python Modules

上面都在描述自建的Modules如何建立與使用

其實還有Python本身就有的Modules可以調用(LINK):

常用像是mathmodule:

或是如下:

有這些已經刻好的Module就不用在自己刻了

Built-In Python Modules Example

os相關:

撰寫log相關:

其他還有很多有用的Module

接著會有個問題是,如何確認哪一個Module是從哪來的?

哪些是自製的?還是Python原生

也可以點檔名右鍵打開目錄:

就會看到:

其中往下可以找到剛剛用的getLogger這個Function

往下就會看到

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet