Python项目的 __init__.py的作用和内容
通常在python项目的源代码子目录下都看到1个__init__.py
文件,django-admin startproject 命令生成的项目结构中也有__init__.py
文件,
那么,为什么要加1个__init__.py`文件,其究竟有什么用,应该向里面写什么内容呢?
1. __init__.py
文件的作用
__init__.py
文件,如果与类定义相比,它相当于是 python package 的constructor 构造方法, 其作用是,告诉python解释器,要把本目录下哪些的函数导进包,以及这些函数位于哪些文件中。
__init__.py
文件可以为空.- 不能把其它同级目录的文件导入此package中。
2. 如何使用__init__.py
下面用实例来说明 __init__.py
是如何工作的,以及应该写什么内容。
(1)在__init__.py
文件中,导入需要的模块
在 my_package/__init__,.py
中,输入以下代码,将此目录下.file1, .file2,.file3文件的函数 func_1, func_2, func_3 导入包my_package,但不包含其它函数模块
from .file1 import func_1
# Where func_1 is the name of the function and .file1 is the name of the module/file
from .file2 import func_2
from .file3 import func_3
这种方式,只是导入了代码文件中所需要的模块。
让我们用实例来看看,导入模块的另1种方式:
在package目录下,创建1个main,.py , 在main.py中直接导入整个 my_package,下例中,可以看到,前面例子中没有的,func_5() 也导入了。
import my_package # this imports the entire module
# 调用func_1()
my_package.func_1()
my_packagee.func_2()
my_packagee.func_3()
my_packagee.func_5()
(2) 设置 __all__
参数
在 __init__.py
中设置 __all__ = ["func_1", "func_2", "func_3"]
告诉interpreter ,该包有哪些模块应该导入,然后在 main.py中导入my_package。最终n只有3个模块函数被导入:
from my_package import *
my_packagee.func_1()
my_packagee.func_2()
my_packagee.func_3()
(3) 导入子目录下的包
示例项目文件结构如下:
sample/
├── docs/
├── main.py
├── my_package2/
│ ├── __init__.py
│ └── create.py
如果 main.py中需要调用子目录 my_package2下的create方法, my_package2子目录下必须有1个__init__,py
文件,然后才能在main,py中导入, 这就是为什么项目的源代码子目录下总放1个 __init__,py
文件的原因。
main.py 的 import 代码如下:
from my_package2 import create
# or
importmy_package2.create
----如果不妥之处,欢迎指正---
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibeiha
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22