模塊內(nèi)部封裝了很多實(shí)用的功能,有時(shí)在模塊外部調(diào)用就需要將其導(dǎo)入。 常見的方式有如下幾種:
1 . import
>>> import sys
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']
最常見的方式,直接將要導(dǎo)入的模塊名稱寫在后面導(dǎo)入。
2 .from .. import ..
與import類似,只是更明確的要導(dǎo)入的方法或變量,比如:
>>> from sys import path
>>> path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']
但是會(huì)造成命名空間的污染,更推薦使用import。
3 . 用名稱字符串導(dǎo)入模塊
我們可能想這樣導(dǎo)入模塊:
>>> import "sys"
SyntaxError: invalid syntax
python import接收的是變量而不是字符串,那將”sys”賦值給一個(gè)變量呢?
>>> x="sys"
>>> import x
Traceback (most recent call last):
File "
", line 1, in
import x
ImportError: No module named 'x'
這樣也不行,這樣做的意思是導(dǎo)入名為x的模塊而非x代表的sys模塊。
我們需要用到exec函數(shù):
>>> x="sys"
>>> exec("import "+ x)
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']
將導(dǎo)入語句構(gòu)建成字符串并傳遞給exec函數(shù)執(zhí)行。
exec缺點(diǎn)是每次執(zhí)行都要編譯,運(yùn)行多次會(huì)影響性能。
更好的方式是使用__import__ 函數(shù)。
>>> x="sys"
>>> sys = __import__(x)
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']
這種方式需要一個(gè)變量保存模塊對(duì)象,以便后續(xù)調(diào)用。
以上這篇Python中幾種導(dǎo)入模塊的方式總結(jié)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

