溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中__init__.py文件怎么寫

發(fā)布時間:2023-02-10 09:11:38 來源:億速云 閱讀:209 作者:iii 欄目:開發(fā)技術

這篇“Python中__init__.py文件怎么寫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“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內容寫法

2.1 __init__.py文件內容

以PySolid代碼為例。PySolid包的目錄結構如下:

.
├── grid.py
├── point.py
└── __init__.py

__init__.py內容:

# 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',
]

Python中__init__.py文件怎么寫

2.2 __init__.py內容解釋

從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__變量來控制外部調用者能夠調用的范圍,除了以下列表中的函數(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文件怎么寫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI