python基礎(chǔ)之包的導(dǎo)入和__init__.py的介紹
調(diào)用同級(jí)目錄:
– src |– mod.py |– test.py
若在程序test.py中導(dǎo)入模塊mod, 則直接使用
import mod 或 from mod import *
調(diào)用子目錄下的模塊:
– src |– mod.py |– lib | |– mod2.py |– test.py from lib.mod2 import * 或 import lib.mod2
調(diào)用上級(jí)目錄下的文件
目錄結(jié)構(gòu)如下:
– src
|– mod.py
|– lib
| |– mod2.py
|– sub
| |– test2.py
import sys
sys.path.append('C:\\test\\A\\C')
import mod
import lib.mod2
__init__.py
在python模塊的每一個(gè)包中,都有一個(gè)__init__.py文件(這個(gè)文件定義了包的屬性和方法)然后是一些模塊文件和子目錄,假如子目錄中也有__init__.py 那么它就是這個(gè)包的子包了。當(dāng)你將一個(gè)包作為模塊導(dǎo)入(比如從 xml 導(dǎo)入 dom )的時(shí)候,實(shí)際上導(dǎo)入了它的__init__.py 文件。
一個(gè)包是一個(gè)帶有特殊文件 __init__.py 的目錄。__init__.py 文件定義了包的屬性和方法。其實(shí)它可以什么也不定義;可以只是一個(gè)空文件,但是必須存在。如果 __init__.py 不存在,這個(gè)目錄就僅僅是一個(gè)目錄,而不是一個(gè)包,它就不能被導(dǎo)入或者包含其它的模塊和嵌套包。
__init__.py 中還有一個(gè)重要的變量,叫做__all__。
如果此時(shí)目錄如下
– src |– mod.py |– lib | |– mod2.py | |– mod3.py | |– sub | |– | |– mod3.py
我們有時(shí)會(huì)使出一招“全部導(dǎo)入”,也就是這樣:
from lib import *
這時(shí) import 就會(huì)把注冊(cè)在包__init__.py 文件中 __all__ 列表中的子模塊和子包導(dǎo)入到當(dāng)前作用域中來(lái)。比如:
#文件__init__.py __all__ = ["mod2", "mod3", "sub"]
總結(jié):
對(duì)于其余路徑下載py文件,要想導(dǎo)入,先加到sys.path中,然后再導(dǎo)入。
__init__.py的作用:
- package的標(biāo)識(shí),不能刪除
- 定義package中的__all__,用來(lái)模糊導(dǎo)入
- 編寫Python代碼(不建議在__init__中寫python模塊,可以在包中在創(chuàng)建另外的模塊來(lái)寫,盡量保證__init__.py簡(jiǎn)單)
總結(jié)
以上所述是小編給大家介紹的python基礎(chǔ)之包的導(dǎo)入和__init__.py的介紹,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python 常用日期處理 -- calendar 與 dateutil 模塊的使用
這篇文章主要介紹了Python如何使用calendar 與 dateutil 模塊處理日期,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
python如何通過(guò)Json路徑返回Json響應(yīng)對(duì)應(yīng)的值
這篇文章主要介紹了python如何通過(guò)Json路徑返回Json響應(yīng)對(duì)應(yīng)的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Pycharm配置lua編譯環(huán)境過(guò)程圖解
這篇文章主要介紹了Pycharm配置lua編譯環(huán)境過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python中similarity函數(shù)實(shí)例用法
在本篇文章里小編給大家整理的是一篇關(guān)于python中similarity函數(shù)實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-10-10
python使用html2text庫(kù)實(shí)現(xiàn)從HTML轉(zhuǎn)markdown的方法詳解
這篇文章主要介紹了python使用html2text庫(kù)實(shí)現(xiàn)從HTML轉(zhuǎn)markdown的方法,需要的朋友可以參考下2020-02-02
Python入門之三角函數(shù)atan2()函數(shù)詳解
這篇文章主要介紹了Python入門之三角函數(shù)atan2()函數(shù)詳解,分享了其實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
淺談anaconda python 版本對(duì)應(yīng)關(guān)系
這篇文章主要介紹了淺談anaconda python 版本對(duì)應(yīng)關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

