網站首頁 編程語言 正文
1. 簡介
1.1 模塊(Module)和包(Package)的概念
模塊是程序,任何Python程序都可以作為模塊導入。寫在腳本.py
文件中的函數,比如xx.py
,可以在另一個模塊或者腳本中通過import xx
進行導入。如果要導入xx.py
中的函數yy
,就寫成from xx import yy
。可見模塊可以簡單的理解為一個.py
文件。
包就是模塊所在的目錄。和文件夾不同的是,包的根目錄下存在__init__.py
。一個文件夾根目錄下存在__init__.py
那就會認為該文件夾是Python包,否則那這個文件夾就是一個普通的文件夾。
1.2 __init__.py文件簡介
__init__.py
文件的作用是將文件夾變為一個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', ]
2.2 __init__.py內容解釋
從grid.py中導入兩個函數:
calc_solid_earth_tides_grid plot_solid_earth_tides_grid
從point.py中導入四個函數:
TIDES, calc_solid_earth_tides_point plot_solid_earth_tides_point plot_power_spectral_density4tides
在__init__.py
中通過定義__all__
變量來控制外部調用者能夠調用的范圍,除了以下列表中的函數,其它函數都無法被使用,類似于私有函數或變量。
__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
相關推薦
- 2023-07-14 react 中redux的使用步驟
- 2022-05-16 C#中關于序列化與反序列化的三種方法_C#教程
- 2022-11-26 詳解Golang?ProtoBuf的基本語法總結_Golang
- 2022-08-23 Django配合python進行requests請求的問題及解決方法_python
- 2022-10-14 【Python】pytorch 保存模型、checkpoint
- 2022-01-31 RuntimeError:Given input size:(256x1x1). Calculate
- 2022-09-12 Go1.18新特性工作區模糊測試及泛型的使用詳解_Golang
- 2023-02-27 Python?input()函數案例教程_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支