1. 程式人生 > 實用技巧 >python---匯入模組和包

python---匯入模組和包

匯入模組和包

匯入模組

import的過程中發生了哪些事情?

  1. 尋找模組
  2. 如果找到,開闢一塊空間,執行這個模組
  3. 把這個模組中用到的名字都收錄到開闢的空間中
  4. 建立一個變數來引用這個模組的空間

注意:

  1. 模組不會被重複匯入
  2. 模組和檔案之間的記憶體空間始終是隔離的
  3. 模組名字必須符合變數命名規範
  4. 模組之間不能迴圈引用,即A中匯入B, B中有匯入A

模組搜尋路徑

​ 一個模組能否被匯入,就看這個模組所在的目錄是否在sys.path中

​ 正常的sys.path中除了內建、擴充套件模組所在的路徑外,只有一個路徑永遠不會出問題,就是直接執行的這個檔案所在的目錄

模組和指令碼

1. 直接執行時,為指令碼,`__name__ = __main__`
2. 匯入時,為模組, `__name__ = 模組名`

pyc檔案

​ 提前編譯好的位元組碼,只能提高程式的啟動效率, 並不能提高程式的執行效率

dir(模組名)

​ 可以獲取這個模組中的所有名字

匯入包

什麼是包?

​ 含有一個__init__.py的資料夾就是一個包,通常包中含有一些py檔案

從包中匯入模組

import匯入

.的左面必須是一個包,終點必須是一個模組

from import匯入

from glance2.api import policy
policy.get()

from glance2.api.policy import get
get()

直接匯入包

匯入包的過程中發生了哪些事情?

​ 匯入包,相當於執行了這個包的__init__.py

檔案

絕對匯入

from glance2.api.versions import create_resource

相對匯入

from ..cmd import manage

​ 運用了相對匯入的檔案不能被直接執行,即相對匯入只能在包內部使用