国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Python中幾種導(dǎo)入模塊的方式總結(jié)

2017-05-10 08:28:38 6552

模塊內(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']

但是會造成命名空間的污染,更推薦使用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 "<pyshell#4>", line 1, in <module>

  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)行多次會影響性能。

更好的方式是使用__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è)變量保存模塊對象,以便后續(xù)調(diào)用。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: