日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

深入理解Python中__init__.py文件_python

作者:大作家佚名 ? 更新時(shí)間: 2023-04-21 編程語(yǔ)言

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ú)法被使用,類(lèi)似于私有函數(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',
]

原文鏈接:https://blog.csdn.net/wokaowokaowokao12345/article/details/128934877

欄目分類(lèi)
最近更新