PyCharm中New Directory 和 New Python Package的区别解析
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的作用和功能
1.标识包:
__init__.py
文件的主要作用是标识目录为一个 Python 包。即使这个文件为空,它的存在也允许 Python 正确识别并处理该目录下的模块。
2.初始化代码:
- 当导入一个包时,
__init__.py
文件中的代码会首先被执行。这意味着你可以在这个文件中放置一些初始化代码,例如包级别的变量初始化、特定的包初始化操作等。
3.控制可导入的模块:
- 在 Python 3.3 之前,
__init__.py
文件还被用来定义包内哪些模块是对外可见的(即可以被导入的)。这是通过在__init__.py
文件中指定__all__
列表来实现的。尽管在新版 Python 中这不再是必需的,但仍然可以用来明确指定包对外公开的接口。
4.命名空间的组织:
__init__.py
文件也用于组织大型代码库的命名空间。通过在这个文件中导入子模块和子包,你可以使得外部对包的使用更加方便和有序。
5.兼容:
- 尽管从 Python 3.3 开始,隐式的命名空间包允许创建没有
__init__.py
的包,但为了向后兼容,许多项目仍然保持使用__init__.py
文件。
6.包的分发和安装:
- 在创建可分发的包时(例如使用 setuptools),
__init__.py
文件是定义包内容和结构的重要组成部分。
综上,一些简单的细节。。。
参考:知识点总结主要来自chatGPT 4
pycharm中创建的directory与python package的区别
在pycharm中,创建的directory(目录)与python package的区别
python package
这是一个特殊的目录,因为在创建该python package的时候,系统会自动地生成一个py文件, init.py
init.py: 文件定义了包的属性和方法。
init.py:虽然定义了包的属性和方法,但是,在该文件里可以什么也不用定义,可以只是一个空文件,但是必须存在(存在就说明这是一个包)。
可以为空但必须存在:如果 init.py不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。
directory在pycharm中就是一个文件夹
可以用于放置资源文件,类似于在电脑桌面右键新建一个文件夹一样,该文件夹其中并不包含__ init.py_ 文件
到此这篇关于PyCharm中New Directory 和 New Python Package的区别的文章就介绍到这了,更多相关PyCharm Directory 和Python Package区别 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- pycharm设置当前工作目录的操作(working directory)
- pycharm 中mark directory as exclude的用法详解
- Python之site-packages目录的位置
- python第三方包安装路径site-packages下.libs作用详解
- python pip安装的包放在哪个目录(site-packages目录的位置)
- Python--模块(Module)和包(Package)详解
- 详解python如何引用包package
- 浅谈Python中文件夹和python package包的区别
- python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
相关文章
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
这篇文章主要介绍了Python面向对象类编写细节,较为详细的分析了Python面向对象程序设计中类,方法,继承,超类,接口等相关概念、使用技巧与注意事项,需要的朋友可以参考下2019-01-01
最新评论