PyCharm中New Directory 和 New Python Package的区别
|
如题,这是一个很简单也很基础的问题,先看不同操作的结果有什么不同
结果1:项目下出现了一个空“文件夹”
结果2:项目下多了一个“Python Package”,该package下包含了一个“__init__.py”文件,该py文件是空的
如果把该py文件删掉后,package也就变成了directory
所以什么是__init__.py
在 Python 中,一个包含 __init__.py 文件的目录被视为一个 Python 包。这个 __init__.py 文件的存在有几个重要的意义和作用。
__init__.py的作用和功能
- 标识包:
- __init__.py 文件的主要作用是标识目录为一个 Python 包。即使这个文件为空,它的存在也允许 Python 正确识别并处理该目录下的模块。
- 初始化代码:
- 当导入一个包时,__init__.py 文件中的代码会首先被执行。这意味着你可以在这个文件中放置一些初始化代码,例如包级别的变量初始化、特定的包初始化操作等。
- 控制可导入的模块:
- 在 Python 3.3 之前,__init__.py 文件还被用来定义包内哪些模块是对外可见的(即可以被导入的)。这是通过在 __init__.py 文件中指定 __all__ 列表来实现的。尽管在新版 Python 中这不再是必需的,但仍然可以用来明确指定包对外公开的接口。
- 命名空间的组织:
- __init__.py 文件也用于组织大型代码库的命名空间。通过在这个文件中导入子模块和子包,你可以使得外部对包的使用更加方便和有序。
- 向后兼容:
- 尽管从 Python 3.3 开始,隐式的命名空间包允许创建没有 __init__.py 的包,但为了向后兼容,许多项目仍然保持使用 __init__.py 文件。
- 包的分发和安装:
- 在创建可分发的包时(例如使用 setuptools),__init__.py 文件是定义包内容和结构的重要组成部分。
综上,一些简单的细节。。。
参考:知识点总结主要来自chatGPT 4
来源:https://www.cnblogs.com/HOI-Yzy/p/17912504.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-12-18 23:56:38
来自手机
举报
回复
分享
|
|
|
|