深入理解Python中__init__.py文件
1. 簡介
1.1 模塊(Module)和包(Package)的概念
模塊是程序,任何Python程序都可以作為模塊導入。寫在腳本.py文件中的函數(shù),比如xx.py,可以在另一個模塊或者腳本中通過import xx進行導入。如果要導入xx.py中的函數(shù)yy,就寫成from xx import yy??梢娔K可以簡單的理解為一個.py文件。
包就是模塊所在的目錄。和文件夾不同的是,包的根目錄下存在__init__.py。一個文件夾根目錄下存在__init__.py那就會認為該文件夾是Python包,否則那這個文件夾就是一個普通的文件夾。
1.2 __init__.py文件簡介
__init__.py文件的作用是將文件夾變?yōu)橐粋€Python的包,Python中每個包中,都有__init__.py文件。通常__init__.py文件為空,但是我們還可以為它增加其他的功能。我們在導入一個包時,實際上是導入了它的__init__.py文件。這樣我們可以在__init__.py文件中批量導入我們所需要的模塊,而不再需要一個一個的導入。
2. __init__.py內(nèi)容寫法
2.1 __init__.py文件內(nèi)容
以PySolid代碼為例。PySolid包的目錄結構如下:
. ├── 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中導入兩個函數(shù):
calc_solid_earth_tides_grid plot_solid_earth_tides_grid
從point.py中導入四個函數(shù):
TIDES, calc_solid_earth_tides_point plot_solid_earth_tides_point plot_power_spectral_density4tides
在__init__.py中通過定義__all__變量來控制外部調(diào)用者能夠調(diào)用的范圍,除了以下列表中的函數(shù),其它函數(shù)都無法被使用,類似于私有函數(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',
]
到此這篇關于深入理解Python中__init__.py文件的文章就介紹到這了,更多相關Python中__init__.py內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python+Selenium實現(xiàn)短視頻熱點爬取
隨著短視頻的大火,不僅可以給人們帶來娛樂,還有熱點新聞時事以及各種知識,刷短視頻也逐漸成為了日常生活的一部分。本文將通過Pyhton依托Selenium來爬取短視頻熱點,需要的可以參考一下2022-04-04
Python中openpyxl實現(xiàn)vlookup函數(shù)的實例
在本篇文章里小編給大家整理的是關于Python中openpyxl實現(xiàn)vlookup函數(shù)的實例內(nèi)容,有興趣的朋友們可以學習參考下。2020-10-10

