Python種匯入模組的三種方式總結

ckxllf發表於2020-03-04

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

  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 "", line 1, in

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

  這種方式需要一個變數儲存模組物件,以便後續呼叫。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2678469/,如需轉載,請註明出處,否則將追究法律責任。

相關文章