模塊內部封裝了很多實用的功能,有時在模塊外部調用就需要將其導入。常見的方式有如下幾種:
1 . import
1
2
3
|
>>> 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'] |
最常見的方式,直接將要導入的模塊名稱寫在后面導入。
2 .from .. import ..
與import類似,只是更明確的要導入的方法或變量,比如:
1
2
3
|
>>> 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 . 用名稱字符串導入模塊
我們可能想這樣導入模塊:
1
2
|
>>> import "sys" SyntaxError: invalid syntax |
python import接收的是變量而不是字符串,那將”sys”賦值給一個變量呢?
1
2
3
4
5
6
|
>>> x = "sys" >>> import x Traceback (most recent call last): File "<pyshell#4>" , line 1 , in <module> import x ImportError: No module named 'x' |
這樣也不行,這樣做的意思是導入名為x的模塊而非x代表的sys模塊。
我們需要用到exec函數:
1
2
3
4
|
>>> 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'] |
將導入語句構建成字符串并傳遞給exec函數執行。
exec缺點是每次執行都要編譯,運行多次會影響性能。
更好的方式是使用__import__ 函數。
1
2
3
4
|
>>> 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'] |
這種方式需要一個變量保存模塊對象,以便后續調用。
以上這篇Python中幾種導入模塊的方式總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。