python---匯入模組和包
阿新 • • 發佈:2020-11-23
匯入模組和包
匯入模組
import的過程中發生了哪些事情?
- 尋找模組
- 如果找到,開闢一塊空間,執行這個模組
- 把這個模組中用到的名字都收錄到開闢的空間中
- 建立一個變數來引用這個模組的空間
注意:
- 模組不會被重複匯入
- 模組和檔案之間的記憶體空間始終是隔離的
- 模組名字必須符合變數命名規範
- 模組之間不能迴圈引用,即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
運用了相對匯入的檔案不能被直接執行,即相對匯入只能在包內部使用