深入理解Python中__init__.py文件
1. 簡(jiǎn)介
1.1 模塊(Module)和包(Package)的概念
模塊是程序,任何Python程序都可以作為模塊導(dǎo)入。寫(xiě)在腳本.py文件中的函數(shù),比如xx.py,可以在另一個(gè)模塊或者腳本中通過(guò)import xx進(jìn)行導(dǎo)入。如果要導(dǎo)入xx.py中的函數(shù)yy,就寫(xiě)成from xx import yy??梢?jiàn)模塊可以簡(jiǎn)單的理解為一個(gè).py文件。
包就是模塊所在的目錄。和文件夾不同的是,包的根目錄下存在__init__.py。一個(gè)文件夾根目錄下存在__init__.py那就會(huì)認(rèn)為該文件夾是Python包,否則那這個(gè)文件夾就是一個(gè)普通的文件夾。
1.2 __init__.py文件簡(jiǎn)介
__init__.py文件的作用是將文件夾變?yōu)橐粋€(gè)Python的包,Python中每個(gè)包中,都有__init__.py文件。通常__init__.py文件為空,但是我們還可以為它增加其他的功能。我們?cè)趯?dǎo)入一個(gè)包時(shí),實(shí)際上是導(dǎo)入了它的__init__.py文件。這樣我們可以在__init__.py文件中批量導(dǎo)入我們所需要的模塊,而不再需要一個(gè)一個(gè)的導(dǎo)入。
2. __init__.py內(nèi)容寫(xiě)法
2.1 __init__.py文件內(nèi)容
以PySolid代碼為例。PySolid包的目錄結(jié)構(gòu)如下:
. ├── grid.py ├── point.py └── __init__.py
__init__.py內(nèi)容:
# top-level functions
from pysolid.grid import (
calc_solid_earth_tides_grid,
plot_solid_earth_tides_grid,
)
from pysolid.point import (
TIDES,
calc_solid_earth_tides_point,
plot_solid_earth_tides_point,
plot_power_spectral_density4tides,
)
__all__ = [
'__version__',
'calc_solid_earth_tides_grid',
'plot_solid_earth_tides_grid',
'TIDES',
'calc_solid_earth_tides_point',
'plot_solid_earth_tides_point',
'plot_power_spectral_density4tides',
]

2.2 __init__.py內(nèi)容解釋
從grid.py中導(dǎo)入兩個(gè)函數(shù):
calc_solid_earth_tides_grid plot_solid_earth_tides_grid
從point.py中導(dǎo)入四個(gè)函數(shù):
TIDES, calc_solid_earth_tides_point plot_solid_earth_tides_point plot_power_spectral_density4tides
在__init__.py中通過(guò)定義__all__變量來(lái)控制外部調(diào)用者能夠調(diào)用的范圍,除了以下列表中的函數(shù),其它函數(shù)都無(wú)法被使用,類似于私有函數(shù)或變量。
__all__ = [
'__version__',
'calc_solid_earth_tides_grid',
'plot_solid_earth_tides_grid',
'TIDES',
'calc_solid_earth_tides_point',
'plot_solid_earth_tides_point',
'plot_power_spectral_density4tides',
]
到此這篇關(guān)于深入理解Python中__init__.py文件的文章就介紹到這了,更多相關(guān)Python中__init__.py內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)身份證信息識(shí)別功能
身份證是用于證明個(gè)人身份和身份信息的官方證件,在現(xiàn)代社會(huì)中,身份證被廣泛應(yīng)用于各種場(chǎng)景,如就業(yè)、教育、醫(yī)療、金融等,它包含了個(gè)人的基本信息,本文給大家介紹了如何基于Python實(shí)現(xiàn)身份證信息識(shí)別功能,感興趣的朋友可以參考下2024-01-01
Python?typing庫(kù)的應(yīng)用與優(yōu)缺點(diǎn)詳解
typing是Python類型提示庫(kù),用于靜態(tài)檢查和提升代碼清晰度,支持函數(shù)/變量注解、復(fù)雜數(shù)據(jù)結(jié)構(gòu)及泛型,優(yōu)點(diǎn):提高可讀性、IDE支持、早期錯(cuò)誤檢測(cè),缺點(diǎn):學(xué)習(xí)成本、動(dòng)態(tài)描述復(fù)雜,建議:新項(xiàng)目推薦使用,小項(xiàng)目可選2025-09-09
Python+Selenium實(shí)現(xiàn)短視頻熱點(diǎn)爬取
隨著短視頻的大火,不僅可以給人們帶來(lái)娛樂(lè),還有熱點(diǎn)新聞時(shí)事以及各種知識(shí),刷短視頻也逐漸成為了日常生活的一部分。本文將通過(guò)Pyhton依托Selenium來(lái)爬取短視頻熱點(diǎn),需要的可以參考一下2022-04-04
實(shí)例解析Python設(shè)計(jì)模式編程之橋接模式的運(yùn)用
這篇文章主要介紹了Python設(shè)計(jì)模式編程之橋接模式的運(yùn)用,橋接模式主張把抽象部分與它的實(shí)現(xiàn)部分分離,需要的朋友可以參考下2016-03-03
Python中openpyxl實(shí)現(xiàn)vlookup函數(shù)的實(shí)例
在本篇文章里小編給大家整理的是關(guān)于Python中openpyxl實(shí)現(xiàn)vlookup函數(shù)的實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2020-10-10
關(guān)于Series的index的方法和屬性使用說(shuō)明
這篇文章主要介紹了關(guān)于Series的index的方法和屬性使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
python 中 .py文件 轉(zhuǎn) .pyd文件的操作
這篇文章主要介紹了python 中 .py文件 轉(zhuǎn) .pyd文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
磁盤垃圾文件清理器python代碼實(shí)現(xiàn)
幾行Python代碼打造自己的磁盤垃圾文件清理器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03

