如何使用

在 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. debian10环境安装rtpengine

    操作系统 :debian 10.13_x64 rtpengine版本:10.5 最新的debian12环境可通过apt直接安装rtpengine,但工作中有时候还会涉及到debian10这样的老系统, ...

  2. Managing Difficulties

    1 #include<bits/stdc++.h> 2 using namespace std; 3 #define FOR(i,n,m) for(int i=n;i<=m;i++) ...

  3. 网站接入qq登录

    网站接入qq登录可以省去注册账号,增加网站的体验度.那么要实现我自己搭建的站点天天博客的qq单点登录需要以下几个步骤:1,申请appid和appkey 首先要去https://connect.qq.c ...

  4. mysql 存储结构介绍及执行过程分析

    MySQL体系结构介绍 1 mysql 的体系结构 MySQL整体的逻辑结构可以分为4层,客户层.服务层.存储引擎层.数据层 客户层 客户层:进行相关的连接处理.权限控制.安全处理等操作 服务层 服务 ...

  5. 物体检测序列之一:ap, map

    准确率(Precision),也叫正确预测率(positive predictive value),在模式识别.信息检索.机器学习等研究应用领域,准确率用来衡量模型预测的结果中相关或者正确的比例.而召 ...

  6. 合合信息扫描全能王亮相静安区3·15活动,AI扫描带来绿色消费新体验

    保护消费者的合法权益,是全社会的共同责任.为优化消费环境.促进品质消费高地建设,打造安全优质和谐的消费环境,上海静安区消保委于3月15日举办静安区2024年"3·15"国际消费者权 ...

  7. ASP.NET Core Library – Excel 读写

    前言 以前写过 EPPlus 的笔记, 但后来 EPPlus 开始收费了.... (这好像是 .NET 生态的宿命) 在找替代方案中看中了微软的 Open XML SDK. 但经过一番折腾, 它确实太 ...

  8. 解锁Java线程池:实战技巧与陷阱规避

    专业在线打字练习网站-巧手打字通,只输出有价值的知识. 一 前言 线程池作为初学者常感困惑的一个领域,本次"巧手打字通课堂"将深入剖析其中几个最为普遍的误区.为了更清晰地阐述这些知 ...

  9. 用C#写个PDF批量合并工具简化日常工作

    一. 前言 由于项目需要编写大量的材料,以及各种签字表格.文书等,最后以PDF作为材料交付的文档格式,过程文档时有变化或补充,故此处理PDF文档已经成为日常工作的一部分. 网上有各种PDF处理工具,总 ...

  10. 30. 串联所有单词的子串 Golang实现

    题目描述: 给定一个字符串 s 和一个字符串数组 words. words 中所有字符串 长度相同 . s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串. 例如, ...