Python中package的匯入文法

來源:互聯網
上載者:User

標籤:import   16px   home   color   匯入   port   文法   pre   失敗   

在Python中,一個目錄被稱為一個package。import和from文法除了匯入module檔案之外,還可以匯入package,文法如下:

# import文法import dir1.dir2.mod#from文法from dir1.dir2.mod import x

上面的匯入語句中,.用來分割目錄和檔案名稱,上面匯入的目錄結構為dir1/dir2/mod.py。當然,也可以只匯入目錄:

import dir1import dir1.dir2from dir1 import dir2

 

搜尋

在以目錄的方式匯入的時,必須注意,在sys.path提供的路徑中,必須存在一個路徑,這個路徑拼接上匯入的路徑,是實際存在的。比如sys.path中存在一個路徑為:/home/username/python,那麼這個路徑拼接上dir1/dir2/mod.py,即/home/username/python/dir1/dir2/mod.py必須實際存在,否則匯入失敗。

 

__init__.py

要匯入一個package,除了要滿足上述的搜尋條件,還必須為匯入的每一個目錄,添加一個名為__init__.py的檔案,這個檔案可以是空的(實際使用中,大部分都是如此),也可以包含代碼,在首次匯入(並不是每次執行)這個目錄時,會執行__init__.py中的代碼。匯入的每一目錄,最終在Python中都實現成為一個module對象,而在__init__.py中賦值的變數和函數,都成為相應module對象的屬性,比如dir2中的__init__.py代碼如下:

X = 999def test():    print("dir2")

那麼匯入dir2之後,可以看到:

>>>dir2.X999>>>dir2.test()dir2

 

 

reload

和module檔案一樣,package目錄也支援reload:

reload(dir1)reload(dir1.dir2)

 

Python中package的匯入文法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.