Python中幾種導入模塊的方式總結

模塊內部封裝了很多實用的功能,有時在模塊外部調用就需要將其導入。常見的方式有如下幾種:

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']

最常見的方式,直接將要導入的模塊名稱寫在后面導入。

2 .from .. import ..

與import類似,只是更明確的要導入的方法或變量,比如:


    >>> 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 . 用名稱字符串導入模塊

我們可能想這樣導入模塊:


     >>> import "sys"
    SyntaxError: invalid syntax

python import接收的是變量而不是字符串,那將"sys"賦值給一個變量呢?


    >>> 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函數:


    >>> 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 函數。


    >>> 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中幾種導入模塊的方式總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


所屬標簽

無標簽

25选5玩法中奖