我們之前看到了函式和物件。從本質上來說,它們都是為了更好的組織已經有的程式,以方便重複利用。
模組(module)也是為了同樣的目的。在Python中,一個.py檔案就構成一個模組。通過模組,你可以呼叫其它檔案中的程式。
引入模組
我們先寫一個first.py檔案,內容如下:
1 2 |
def laugh(): print 'HaHaHaHa' |
再寫一個second.py,並引入first中的程式:
1 2 3 4 |
import first for i in range(10): first.laugh() |
在second.py中,我們使用了first.py中定義的laugh()函式。
引入模組後,可以通過模組.物件的方式來呼叫引入模組中的某個物件。上面例子中,first為引入的模組,laugh()是我們所引入的物件。
Python中還有其它的引入方式,
import a as b # 引入模組a,並將模組a重新命名為b
from a import function1 # 從模組a中引入function1物件。呼叫a中物件時,我們不用再說明模組,即直接使用function1,而不是a.function1。
from a import * # 從模組a中引入所有物件。呼叫a中物件時,我們不用再說明模組,即直接使用物件,而不是a.物件。
這些引用方式,可以方便後面的程式書寫。
搜尋路徑
Python會在以下路徑中搜尋它想要尋找的模組:
- 程式所在的資料夾
- 標準庫的安裝路徑
- 作業系統環境變數PYTHONPATH所包含的路徑
如果你有自定義的模組,或者下載的模組,可以根據情況放在相應的路徑,以便Python可以找到。
模組包
可以將功能相似的模組放在同一個資料夾(比如說this_dir)中,構成一個模組包。通過
1 |
import this_dir.module |
引入this_dir資料夾中的module模組。
該資料夾中必須包含一個__init__.py的檔案,提醒Python,該資料夾為一個模組包。__init__.py可以是一個空檔案。
總結
import module
module.object
__init__.py