如何使用

在 Python 中,当一个目录被作为包来使用时,它会在包中寻找一个名为 __init__.py 的文件。如果该文件存在,Python 会将它加载到内存中,并在其中执行所有的代码。

__init__.py 文件用于初始化包,它可以包含一些初始化代码,例如导入其他模块、定义一些常量或配置选项等。这样,当包被导入时,这些初始化代码就会自动执行,从而给使用者提供了一些方便。

​ 例如,假设我们有一个包叫做 package,包含一个名为 module1.py 的模块,那么可以在 package 目录中创建一个 __init__.py 文件,并在其中导入 module1.py 模块,如下所示:

# package/__init__.py
from .module1 import *

​ 这样,在导入 package 包时,__init__.py 文件中的代码就会自动执行,从而将 module1.py 模块导入到包中。之后,我们就可以直接使用 package.module1 来调用该模块中的函数或类了。

​ 此外,__init__.py 文件可以为空,在这种情况下,它只是用于告诉 Python 当前目录是一个包,不会执行任何代码。但是,如果包中有多个模块,并且您想将它们都导入到包中,那么可以在 __init__.py 文件中将这些模块都导入进来,这样就可以方便地使用这些模块了。

​ 下面是一个更加完整的例子,展示了如何使用 __init__.py 文件来初始化一个包:

# package/__init__.py

# 导入模块1和模块2
from .module1 import *
from .module2 import * # 定义常量
PACKAGE_CONSTANT = "hello" # 读取配置文件
with open("package.conf") as f:
conf = f.read()

在上面的例子中,__init__.py 文件首先导入了包中的两个模块 module1module2,然后定义了一个名为 PACKAGE_CONSTANT 的常量,最后读取了一个名为 package.conf 的配置文件。

在导入 package 包时,这些代码都会自动执行,并完成如下操作:

  • 导入模块1和模块2,以便在使用时可以直接使用 package.module1package.module2 调用这两个模块中的函数和类。
  • 定义了一个常量 PACKAGE_CONSTANT,以便在使用时可以直接使用

注意:

如果在一个目录下创建了一个 __init__.py 文件,那么这个目录就会变成一个包

python基础之__init__.py的更多相关文章

  1. Python包中 __init__.py文件的作用

    原创连接 https://www.cnblogs.com/AlwinXu/p/5598543.html Python包中 __init__.py文件的作用 在创建python包的过程中,IDE都会在包 ...

  2. python 中的__init__.py的用法与个人理解

    使用Python模块常见的情况是,事先写好A.py文件,需要import B.py文件时,先拷贝到当前目录,然后再import 这样的做法在程序量较小的情况下是可行的,如果程序交互复杂程度稍高,就很费 ...

  3. python包中__init__.py文件的作用

    python包中__init__.py文件的作用 __init__.py文件最常用的作用是标识一个文件夹是一个 python包. __init__.py文件的另一个作用是定义模糊导入时要导入的内容. ...

  4. Python包中__init__.py作用

    在创建python包的过程中,IDE都会在包根目录下创建一个__init__.py文件,该Python文件默认是空的.目录结构如下: Pycharm下的package树结构: 在Finder中的目录结 ...

  5. 【转】【Python】Python中的__init__.py与模块导入(from import 找不到模块的问题)

    python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的 ...

  6. python模块中__init__.py的作用

    基本概念先上结论举例解释实验一:不包含__init__.py实验二:A中包含__init__.py实验三:A.A_A中也包含__init__.py进阶基本概念概念 解释import 即导入,方式就是在 ...

  7. python包中__init__.py的作用

    1.__init__.py定义包的属性和方法 一般为空文件,但是必须存在,没有__init__.py表明他所在的目录只是目录不是包 2.导入包的时候使用 例如有一个test目录,test下有xx1.p ...

  8. Python中的__init__.py的作用

    当用 import 导入该目录时,会执行 __init__.py 里面的代码 因此在__init__.py文件中,把深层的包的路径缩短,别的地方就可以在引用到目录级别时引到深层的包.

  9. Python基础(十) __init__与__new__区别

    __init__与__new__区别: __init__在python,其实是,在实例化之后执行的,用来初始化一些属性,相当于构造函数,但是又不一样 细心一些,通过参数会有所发现,其实__init__ ...

  10. python基础-模块

    一.模块介绍                                                                                              ...

随机推荐

  1. Word格式刷快捷键失效恢复方法

    突然某天写材料的时候发现word格式刷快捷键变成了Ctrl+Alt+C和Ctrl+Alt+V,用着这个别扭,于是探索如何改回Ctrl+Shift+C和Ctrl+Shift+V,下边是步骤记录. 打开w ...

  2. Windows添加软件开机自启动

    两种方式 1.添加快捷方式到开始菜单 打开我的电脑找到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 文件夹, 如果难找的话可 ...

  3. 构建 OpenWrt

    OpenWrt 是一款路由器操作系统.如果你想要给自己的路由器安装 OpenWrt 的话,一般来说使用别人已经构建好的 OpenWrt 固件就够用了.当然如果你闲得没事干,那么也可以自己构建固件. P ...

  4. LaTeX 编译 acmart 文档报错:An attempt to redefine \baselinestretch detected. Please do not do this for ACM submissions!

    在编译一篇从 arXiv 下载的文档时遇到如下错误: Class acmart Error: An attempt to redefine \baselinestretch detected. Ple ...

  5. P7706 「Wdsr-2.7」文文的摄影布置

    题意 给定长度为 \(n\) 的数组 \(a\) 和 \(b\),支持单点修改,\(q\) 次区间查询 \(\max_{l\le i<k\le r} \{a_i + a_k - \min_{i& ...

  6. Serilog文档翻译系列(一) - 入门指南

    保持优质文档是 Serilog 的优先事项.如果你发现文档中有缺失或不准确的内容,或者希望通过添加主题或教程来扩展 wiki,请通过问题追踪系统告知我们. 为什么选择Serilog? 与许多其他 .N ...

  7. Mongodb入门3

    company数据库下面heros集合里的数据: { "_id" : ObjectId("6100c897d0c9f4158c2b0c9b"), "n ...

  8. 小tips:xml文件转为html表格展示示例

    books.xml文件格式如下: <?xml version="1.0" encoding="UTF-8"?> <xbrl xmlns=&qu ...

  9. 一篇文章讲清楚synchronized关键字的作用及原理

    概述 在应用Sychronized关键字时需要把握如下注意点: 一把锁只能同时被一个线程获取,没有获得锁的线程只能等待: 每个实例都对应有自己的一把锁(this),不同实例之间互不影响:例外:锁对象是 ...

  10. SXYZ-6.26模拟赛

    没有爆零,足矣. 发现绍兴一中机房的一个特点:键盘打得贼响!! T1 ctrl 啃臭键在哪里 (中文名我都不好意思大打) 第一遍测T1一分都没得啊! 这跟题目描述自相矛盾有关,导致我只是轻微考虑了一下 ...