1. 程式人生 > >python 包和匯入模組

python 包和匯入模組

包的構成三要素:目錄資料夾,xxx.py,__init__.py。
import包時,程式會先執行__init__.py檔案,用於初始化包的屬性和方法。若__init__.py為空時,預設初始化包內所有的屬性和方法。

匯入模組

如下檔案結構模組間進行檔案匯入:
floder
  —floderA:
    —A1.py
    —A2.py
  —floderB:
    —B1.py
    —B2.py
  —main.py
1. A1.py如何匯入A2模組?
import A2
執行A1.py時,系統路徑為floderA的絕對路徑,所以執行import A2時,系統可明確查詢到A2模組。
2. mian.py如何匯入A1模組?


第一步:在floderA檔案下新增__init__.py,使floderA變成一個包。
第二步:from floderA.A1 import *
執行main.py檔案時,系統路徑為floder的絕對路徑。執行from floder.A1 import *,系統可明確找到floderA;而通過將floderA變成包,系統又明確可在包內找到A1模組。
3. 執行A1.py檔案,A1.py如何匯入B1.py模組?
第一步:在floderB檔案下新增__init__.py,使floderB變成一個包。
第二步:在A1.py新增import sys sys.path.append(floder的絕對路徑)
第三步:from floderB.B1 import *
執行A1.py,系統路徑為floderA的絕對路徑。通過 sys.path.append()函式設定系統路徑為floder路徑,使程式明確找到floderB,而通過將floderB變成包,系統又明確可在包內找到B1模組。

4. 若執行mian.py檔案但需要A1.py匯入B1.py模組,如何操作?
第一步:在floderB檔案下新增__init__.py,使floderB變成一個包。
第二步:在floderA檔案下新增__init__.py,使floderA變成一個包。
第三步:在A1.py新增from floderB.B1 import *
第四步:在main.py新增from floderA.A1 import *
執行mian.py檔案,系統路徑為floder絕對路徑。在floderA和floderB成為包後,A1.py可明確找到B1模組。