首页 > 编程语言 > 详细

python基础之__init__.py文件

时间:2021-04-08 17:58:29      阅读:25      评论:0      收藏:0      [点我收藏+]

__init__.py文件的作用:
1、标识package
2、导包简化
3、配置模块初始化

一、导包自动执行
当导入一个包时,会自动加载其包中的__init__.py文件
来看如下例子:
目录结构:
技术分享图片

 

 package1中的__init__.py:

package1.__init__.py

print("this is package1‘s __init__.py")

我们在e.py中导入package1这个包

e.py

import package1

运行e.py,结果如下:
技术分享图片

 

 我们可以看到,__init__.py中的语句被执行了。
同样,如果我们不是导入的整个包,而是导入包中的某个或多个模块,__init__.py也会被加载。
结论:当导入包或包中的模块时,包中__init__.py文件会被自动加载。

tips:那如果__init__.py中有函数、变量、类时,如何调用呢?
答案是:用包名调用即可。(当然,如果需要用包名调用__init__.py中的函数、变量、类时,是需要导入整个包才能这样去调用的)
技术分享图片

 

 技术分享图片

 

 执行结果:
技术分享图片

 

 

二、简化导包
如下结构目录:
技术分享图片

 

 如果我们要在其他模块中用到这个包中的所有模块中的内容,按照前面的方式我们只能逐一导入每个模块
技术分享图片

 

 要导入的模块比较少时还好,一旦数量很多将会显得非常臃肿。
那有什么办法解决这个问题呢?
答案是在__init__.py中定义__all__(是不是很熟悉,没错,在导入模块中的所有内容时,就用到了这个属性)
我们看如下例子
技术分享图片

 

 然后我们在e.py中导入所有模块
技术分享图片

 

 这样,就可以一次性导入所有的模块了。
其实,我们还可以直接导入包,直接导入包后就用包名来调用对应的模块,如下图:
技术分享图片

 

 

三、初始化操作
__init__.py文件也是一个.py文件,因此可以把一些初始化的操作写入其中,当导入包或者包中的模块时,便会进行初始化操作。

 

python基础之__init__.py文件

原文:https://www.cnblogs.com/ctltest/p/14632530.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!