這是我通過對同csdn的另一位博主講解這個板塊的部落格研究和自行實驗後,自己的心得
在我看來,匯入方式的分類可分為絕對匯入和相對匯入(相對於當前import語句所在檔案的目錄)
絕對匯入:
import a.b
from a import b
相對匯入:
from . import b (從當前目錄)
from ..a import b (相對於a目錄的上上層目錄,單個'.'代表上層,兩個代表上上層,依次類推)
記住packege每層都必須存在乙個_init_.py 不然python會識別不出此目錄是packege,以至於import packege失敗
其實一般出錯是出錯在相對匯入,其雖然簡單,但更易出錯
推薦使用try except來避免此類錯誤發生,導致程式出錯
try:
from . import b
from .a import b
except exception:
import a.b
from a import b
(可能其中目錄表達有錯,但意思就是先try相對匯入,如果出錯就捕獲異常用絕對匯入)
由於寫部落格當天時間較緊,就只能先寫到這了
Python3 變數命名空間 import 整理
每個函式 function 有自己的命名空間,稱local namespace,記錄函式的變數。每個模組 module 有自己的命名空間,稱global namespace,記錄模組的變數,包括functions classes 匯入的modules module級別的變數和常量。build in ...
python 模組相互import
模組a中import b,而在模組b中import a。這時會怎麼樣呢?這個在python列表中由robertchen給出了詳細解釋,抄錄如下 a.py from b import d class c pass b.py from a import c class d pass 為什麼執行a的時候不...
python 連環import問題
首先說明一下這是怎樣的乙個問題 結構如圖所示 如下 c.py import src.a b.py print hello a.py import b 此時,我們執行c.py,會報錯 這是為什麼呢?原因在於當前目錄是c.py所在的目錄,而在這個目錄中沒有b.py這個模組。所以,我們該怎麼辦呢?解決的方...