深入理解Python中__init__.py文件

 更新时间:2023年02月09日 15:39:35   作者:大作家佚名  
本文主要介绍了深入理解Python中__init__.py文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

到此这篇关于深入理解Python中__init__.py文件的文章就介绍到这了,更多相关Python中__init__.py内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Python实现身份证信息识别功能

    基于Python实现身份证信息识别功能

    身份证是用于证明个人身份和身份信息的官方证件,在现代社会中,身份证被广泛应用于各种场景,如就业、教育、医疗、金融等,它包含了个人的基本信息,本文给大家介绍了如何基于Python实现身份证信息识别功能,感兴趣的朋友可以参考下
    2024-01-01
  • Python typing库的应用与优缺点详解

    Python typing库的应用与优缺点详解

    typing是Python类型提示库,用于静态检查和提升代码清晰度,支持函数/变量注解、复杂数据结构及泛型,优点:提高可读性、IDE支持、早期错误检测,缺点:学习成本、动态描述复杂,建议:新项目推荐使用,小项目可选
    2025-09-09
  • Python文件相关操作和方法汇总大全

    Python文件相关操作和方法汇总大全

    这篇文章主要介绍了Python文件相关操作和方法汇总大全,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python+Selenium实现短视频热点爬取

    Python+Selenium实现短视频热点爬取

    随着短视频的大火,不仅可以给人们带来娱乐,还有热点新闻时事以及各种知识,刷短视频也逐渐成为了日常生活的一部分。本文将通过Pyhton依托Selenium来爬取短视频热点,需要的可以参考一下
    2022-04-04
  • 实例解析Python设计模式编程之桥接模式的运用

    实例解析Python设计模式编程之桥接模式的运用

    这篇文章主要介绍了Python设计模式编程之桥接模式的运用,桥接模式主张把抽象部分与它的实现部分分离,需要的朋友可以参考下
    2016-03-03
  • 图解Python中的浅拷贝和深拷贝

    图解Python中的浅拷贝和深拷贝

    这篇文章主要介绍了图解Python中的浅拷贝和深拷贝,深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过来了,浅拷贝,拷贝的程度浅,只拷贝原数据的首地址,然后通过原数据的首地址,去获取内容,需要的朋友可以参考下
    2023-11-11
  • Python中openpyxl实现vlookup函数的实例

    Python中openpyxl实现vlookup函数的实例

    在本篇文章里小编给大家整理的是关于Python中openpyxl实现vlookup函数的实例内容,有兴趣的朋友们可以学习参考下。
    2020-10-10
  • 关于Series的index的方法和属性使用说明

    关于Series的index的方法和属性使用说明

    这篇文章主要介绍了关于Series的index的方法和属性使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • python 中 .py文件 转 .pyd文件的操作

    python 中 .py文件 转 .pyd文件的操作

    这篇文章主要介绍了python 中 .py文件 转 .pyd文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 磁盘垃圾文件清理器python代码实现

    磁盘垃圾文件清理器python代码实现

    几行Python代码打造自己的磁盘垃圾文件清理器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03

最新评论