Python 模塊的使用跟其他編程語言也是類似的。你要使用某個模塊,在使用之前,必須要導(dǎo)入這個模塊。導(dǎo)入模塊我們使用關(guān)鍵字 import
。
import
的語法基本如下:
import module1[, module2[,... moduleN]
比如我們使用標(biāo)準(zhǔn)庫模塊中的 math 模塊。當(dāng)解釋器遇到 import
語句,如果模塊在當(dāng)前的搜索路徑就會被導(dǎo)入。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import math
_author_ = '兩點水'
print(math.pi)
輸出的結(jié)果:
3.141592653589793
一個模塊只會被導(dǎo)入一次,不管你執(zhí)行了多少次 import。這樣可以防止導(dǎo)入模塊被一遍又一遍地執(zhí)行。
當(dāng)我們使用 import 語句的時候,Python 解釋器是怎樣找到對應(yīng)的文件的呢?
這就涉及到 Python 的搜索路徑,搜索路徑是由一系列目錄名組成的,Python 解釋器就依次從這些目錄中去尋找所引入的模塊。這看起來很像環(huán)境變量,事實上,也可以通過定義環(huán)境變量的方式來確定搜索路徑。搜索路徑是在 Python 編譯或安裝的時候確定的,安裝新的庫應(yīng)該也會修改。搜索路徑被存儲在sys 模塊中的 path 變量 。
因此,我們可以查一下路徑:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
print(sys.path)
輸出結(jié)果:
['C:\\Users\\Administrator\\Desktop\\Python\\Python8Code', 'G:\\PyCharm 2017.1.4\\helpers\\pycharm', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages', 'C:\\Users\\Administrator\\Desktop\\Python\\Python8Code\\com\\Learn\\module\\sys']
有沒有想過,怎么直接導(dǎo)入某個模塊中的屬性和方法呢?
Python 中,導(dǎo)入一個模塊的方法我們使用的是 import
關(guān)鍵字,這樣做是導(dǎo)入了這個模塊,這里需要注意了,這樣做只是導(dǎo)入了模塊,并沒有導(dǎo)入模塊中具體的某個屬性或方法的。而我們想直接導(dǎo)入某個模塊中的某一個功能,也就是屬性和方法的話,我們可以使用 from···import
語句。
語法如下:
from modname import name1[, name2[, ... nameN]]
看完簡介后可能會想, from···import
和 import
方法有啥區(qū)別呢?
想知道區(qū)別是什么,觀察下面兩個例子:
import
導(dǎo)入 sys 模塊,然后使用 version 屬性
from···import
直接導(dǎo)入 version 屬性
通過上面的學(xué)習(xí),我們知道了 from sys import version
可以直接導(dǎo)入 version 屬性。但是如果我們想使用其他的屬性呢?比如使用 sys 模塊中的 executable
,難道又要寫多一句 from sys import executable
,兩個還好,如果三個,四個呢?難道要一直這樣寫下去?
這時候就需要 from ··· import *
語句了,這個語句可以把某個模塊中的所有方法屬性都導(dǎo)入。比如:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from sys import *
print(version)
print(executable)
輸出的結(jié)果為:
3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe
注意:這提供了一個簡單的方法來導(dǎo)入一個模塊中的所有方法屬性。然而這種聲明不該被過多地使用。