每個 Python 的檔案都可以看作模組,import 以後就可以使用裡面的函式或變數。假設我們有一個 my_mod.py,內容為以下:
def inc(x): return x + 1 def dec(x): return x - 1 a = 10 b = 20則我們可以在同一目錄下的 Python 環境或檔案中這樣使用:
import my_mod print(my_mod.a) print(my_mod.b) print(my_mod.inc(1)) print(my_mod.dec(100))Import 的時候,利用 as 可以換個名稱:
import my_mod as mm print(mm.a) print(mm.inc(1))也可以只 import 模組中的一部分內容。此時,你在呼叫時就不需要再寫出原本的模組名稱,但是會無法存取未在 import 之列的其他內容:
from my_mod import inc print(inc(1)) print(dec(100)) # 這行會產生錯誤如果將 my_mod.py 的內容改為以下,則你會發現 import 以後,那行 print 也會被執行:
def inc(x): return x + 1 def dec(x): return x - 1 print('This is my_mod')如果你希望在作為模組使用的程式檔案裡面,撰寫 print 或者任何不被包在函式(或者物件,但不在本篇之列)內的程式碼,但是又不希望那些程式碼隨著該檔案被 import 而執行的話,可以用「if __name__ == '__main__':」來包住它們,如下:
def inc(x): return x + 1 def dec(x): return x - 1 if __name__ == '__main__': print('This is my_mod')這是因為「__name__」變數在該 Python 程式碼作為一般檔案直接執行,和作為模組時的內容不一樣所致。你可以將 my_mod.py 修改為以下,然後直接執行 my_mod.py;以及在其他檔案 import my_mod 以後,再執行「print(my_mod.__name__)」看看:
print(__name__)