gpt4 book ai didi

python - 自写模块中的 __init__.py 是否必要?

转载 作者:行者123 更新时间:2023-11-30 22:58:13 27 4
gpt4 key购买 nike

我正在创建各种各样的程序,因此我需要很多不同的包和模块。其中一些是我自己编写的,一些是下载的。

下载的模块都有__init__.py文件位于其主目录中,以及子目录中的随机位置。这是一个例子:

/theexamplemodule
|-__init__.py #first
|-file1.py
|-file2.py
|-folder1
| |-__init__.py #second
| |-file3.py
|-folder2
| |-data.txt
| |-file4.py

我在 stackverflow 上搜索了一下,发现了这个' What is __init__.py for? ' 回答为什么第一个在那里,它将目录设置为模块或类似的东西......

但是为什么这个声明是必要的,其他声明的意义是什么?

我自己的模块的构建与此类似,但没有 __init__.py文件。我不明白__init__.py的优点文件。这些优点是什么?

最佳答案

“需要 init.py 文件来使 Python 将目录视为包含包;这样做是为了防止具有通用名称(例如字符串)的目录无意中隐藏发生的有效模块稍后(更深入)模块搜索路径。在最简单的情况下,init.py 可以只是一个空文件,但它也可以执行包的初始化代码或设置all 变量,稍后描述。”

名为init.py的文件用于将磁盘上的目录标记为Python包目录。如果您有文件

mydir/spam/__init__.py
mydir/spam/module.py

并且 mydir 在您的路径上,您可以将 module.py 中的代码导入为:

导入垃圾邮件模块或

来自垃圾邮件导入模块如果删除 init.py 文件,Python 将不再在该目录中查找子模块,因此尝试导入该模块将会失败。

init.py 文件通常为空,但可用于以更方便的名称导出包的选定部分、保存方便的函数等。在上面的示例中, init 模块可以通过以下方式访问导入垃圾邮件

关于python - 自写模块中的 __init__.py 是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com