Python 模塊是一個以 .py 結尾的 Python 文件,包含了 Python 對象定義和Python語句。每個模塊在python裏都被看作是一個獨立的文件。模塊能夠被別的程序引入,以使用該模塊中的函數等功能,這也是使用 python 標準庫的方法。python
模塊能夠導入其它模塊,習慣上把全部 import語句放在模塊的開頭(不要求)。模塊導入的方式有幾種:程序員
import module1[, module2[,... moduleN]] # 例如導入一個path模塊 import path
直接使用關鍵詞import
,後面跟具體的模塊名稱,就能夠導入某一個模塊。同一個模塊無論執行了多少次import
,都只會被導入一次,以防止模塊被一遍又一遍的執行。 模塊引入好後,若是要調用模塊中的函數,必須以下:shell
模塊名.函數名
from modname import name1[, name2[, ... nameN]] # 例如要導入pprint模塊的pprint from pprint import pprint
在使用import語句
導入模塊時會將整個模塊引入進來,而使用from...import 語句則是從模塊中導入一個指定的部分到當前命名空間中。如上面代碼中則只會導入pprint模塊中的pprint函數,其餘函數並不會導入。函數
import語句
引入模塊後,若是須要使用模塊裏的函數方法,則須要加上模塊的限定名字,而from...import語句
則不用加模塊的限定名字,直接使用其函數方法;code
# 第一種方式 import pprint pprint.pprint("hello world") # 第二種方式 from pprint import pprint pprint("hello world")
from…import*
語句來引入模塊from…import*
語句表示把一個模塊的全部內容全都導入到當前的命名空間。對象
from modname import *
在多數狀況下,Python程序員都不會使用這個功能,由於它在解釋器中引入了一組未知的名稱,而它們極可能會覆蓋一些你已經定義過的東西。 注意一般狀況下從一個模塊或者包內調入 * 的作法是不太被接受的, 由於這一般會致使代碼的可讀性不好。不過,在交互式編譯器中爲了節省打字能夠這麼用。編譯器
__name__
屬性一個模塊被另外一個程序第一次引入時,其主程序將運行。若是咱們想在模塊被引入時,模塊中的某一程序塊不執行,咱們能夠用__name__
屬性來使該程序塊僅在該模塊自身運行時執行。 每一個模塊都有一個__name__
屬性,當其值是'__main__'
時,代表該模塊自身在運行,不然是被引入。it
if __name__ == "__main__": print("模塊自身在運行")
搜索路徑是由一系列目錄名組成的,Python解釋器就依次從這些目錄中去尋找所引入的模塊。當一個模塊被導入的時候,模塊的搜索路徑爲:編譯
PYTHONPATH是Python中一個重要的環境變量,用於在導入模塊的時候搜索路徑,能夠經過以下方式訪問:import
import sys sys.path
做爲環境變量,PYTHONPATH 由裝在一個列表裏的許多目錄組成。PYTHONPATH 的語法和 shell 變量 PATH 的同樣。 在 Windows 系統,典型的 PYTHONPATH 以下:
set PYTHONPATH=c:\python37\lib;