在Python中,我们经常会看到一个文件夹下有若干个py文件,其中总有那么一个py文件在命名上很特别,就是__init__.py。该py文件前后各是两个下划线,这是Python官方文档的规定,这样命名是有特殊功能的。
__init__.py主要是用来初始化Python包的(package)。在这里简单介绍一下Python中的包和模块的概念。
Python包(package),是一个目录,该目录下包括了__init__.py文件,以及其他功能的py文件。
Python模块(module),一个py文件就是一个module。
有两个同级目录test1和test2,test1目录下有test11.py,test2目录下有test22.py。其中test11.py中包含defuli()函数。如果要想在test22.py中调用defuli()函数,首先需要在test22.py中导入test1包。
from test1 import test11
test11.defuli() # 调用即可
在Python3.3以后,不需要在test1目录下加入__init__.py也可以认为test1为一个包。在Python3.3以前,需要在test1下新建__init__.py,用以表明test1为一个包。
如果test1目录下,有很多py文件,比如有test11.py,test12.py,test13.py等。我们在test22.py中导入test1时,采用如下代码。
from test1 import *
默认是导入test1目录下所有的py文件,也就是所有的模块。但是如果我们想只导入test11.py,不导入test12.py和test13.py,此时应该在test1目录下新建__init__.py文件,并加入如下代码。
__all__ = ['test11']
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有