模塊的使用
1、import
Python 模塊的使用跟其他編程語言也是類似的。你要使用某個模塊,在使用之前,必須要導(dǎo)入這個模塊。導(dǎo)入模塊我們使用關(guān)鍵字 import。
import 的語法基本如下:
import module1[, module2[,... moduleN]
比如我們使用標準庫模塊中的 math 模塊。當解釋器遇到 import 語句,如果模塊在當前的搜索路徑就會被導(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í)行。
當我們使用 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']
2、from···import
有沒有想過,怎么直接導(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 屬性
3、from ··· import *
通過上面的學(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)入一個模塊中的所有方法屬性。然而這種聲明不該被過多地使用。