python基础之__init__.py
如何使用
在 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 文件首先导入了包中的两个模块 module1 和 module2,然后定义了一个名为 PACKAGE_CONSTANT 的常量,最后读取了一个名为 package.conf 的配置文件。
在导入 package 包时,这些代码都会自动执行,并完成如下操作:
- 导入模块1和模块2,以便在使用时可以直接使用
package.module1和package.module2调用这两个模块中的函数和类。 - 定义了一个常量
PACKAGE_CONSTANT,以便在使用时可以直接使用
注意:
如果在一个目录下创建了一个
__init__.py文件,那么这个目录就会变成一个包
python基础之__init__.py的更多相关文章
- Python包中 __init__.py文件的作用
原创连接 https://www.cnblogs.com/AlwinXu/p/5598543.html Python包中 __init__.py文件的作用 在创建python包的过程中,IDE都会在包 ...
- python 中的__init__.py的用法与个人理解
使用Python模块常见的情况是,事先写好A.py文件,需要import B.py文件时,先拷贝到当前目录,然后再import 这样的做法在程序量较小的情况下是可行的,如果程序交互复杂程度稍高,就很费 ...
- python包中__init__.py文件的作用
python包中__init__.py文件的作用 __init__.py文件最常用的作用是标识一个文件夹是一个 python包. __init__.py文件的另一个作用是定义模糊导入时要导入的内容. ...
- Python包中__init__.py作用
在创建python包的过程中,IDE都会在包根目录下创建一个__init__.py文件,该Python文件默认是空的.目录结构如下: Pycharm下的package树结构: 在Finder中的目录结 ...
- 【转】【Python】Python中的__init__.py与模块导入(from import 找不到模块的问题)
python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的 ...
- python模块中__init__.py的作用
基本概念先上结论举例解释实验一:不包含__init__.py实验二:A中包含__init__.py实验三:A.A_A中也包含__init__.py进阶基本概念概念 解释import 即导入,方式就是在 ...
- python包中__init__.py的作用
1.__init__.py定义包的属性和方法 一般为空文件,但是必须存在,没有__init__.py表明他所在的目录只是目录不是包 2.导入包的时候使用 例如有一个test目录,test下有xx1.p ...
- Python中的__init__.py的作用
当用 import 导入该目录时,会执行 __init__.py 里面的代码 因此在__init__.py文件中,把深层的包的路径缩短,别的地方就可以在引用到目录级别时引到深层的包.
- Python基础(十) __init__与__new__区别
__init__与__new__区别: __init__在python,其实是,在实例化之后执行的,用来初始化一些属性,相当于构造函数,但是又不一样 细心一些,通过参数会有所发现,其实__init__ ...
- python基础-模块
一.模块介绍 ...
随机推荐
- 线性dp:编辑距离
编辑距离 本题与力扣72.编辑距离题意一样,阅读完本文可以尝试leetcode72. 力扣题目链接 题目叙述 输入两个字符串a,b.输出从字符串a修改到字符串b时的编辑距离 输入 NOTV LOVER ...
- 推荐一款开源一站式SQL审核查询平台!功能强大、安全可靠!
1.前言 在当今这个数据驱动的时代,数据库作为企业核心信息资产的载体,其重要性不言而喻.随着企业业务规模的不断扩大,数据库的数量和种类也日益增多,这对数据库的管理与运维工作提出了前所未有的挑战.在这样 ...
- 如何选择 Linux 发行版
简介 要建立云服务器,首先需要安装操作系统.在现代环境中,几乎所有情况下都是指 Linux 操作系统.从历史上看,Windows 服务器和其他类型的 Unix 在特定的商业环境中都很流行,但现在几乎每 ...
- 微信小程序之无需服务端支持实现内容安全检查
微信小程序之无需服务端支持实现内容安全检查 微信小程序审核未通过,原因如下: 为避免您的小程序被滥用,请你完善内容审核机制,如调用小程序内容安全API,或使用其他技术.人工审核手段,过滤色情.违法等有 ...
- IP服务正常,域名服务异常,报400 badrequest
IP的情况下,访问接口都正常,使用域名访问,报错400 badrequest 经确认,ssl配置无问题,证书文件本身无问题 最后查出来原因,是域名格式的问题,原域名中包含_,需要修改为- 排查过程: ...
- 总结篇3:redis 典型缓存架构设计问题及性能优化
聊聊对于缓存预热.缓存穿透.缓存雪崩.缓存击穿.缓存更新.缓存降级的定义理解 缓存穿透 定义 当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶 ...
- 9.5内网横向&代理&隧道
Socks代理思路: 工具:nps.frp.ngrok.reGeorg.sockscap64.earthworm.proxifier.proxychains 知识点 1.内外网简单知识 2.内网1和内 ...
- 游戏AI行为决策——MLP(多层感知机/人工神经网络)
游戏AI行为决策(特别篇)--MLP(附代码与项目) 你一定听说过神经网络的大名,你有想过将它用于游戏AI的行为决策上吗?其实在(2010年发布的)<最高指挥官2>中就有应用了,今天请允许 ...
- 原生JavaScript实现可旋转立方体效果基础示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS – Houdini
介绍 简单说这个 Houdini 是一系列 CSS 底层 API,它可以让我们扩展 CSS,做出一些 Polyfill. 举一个例子,让大家有个画面. 我们可以通过 CSS + JS + Canvas ...