PyCharm中New Directory 和 New Python Package的区别解析

 更新时间:2023年12月19日 09:18:44   作者:半度墨水  
python package这是一个特殊的目录,因为在创建该python package的时候,系统会自动地生成一个py文件, init.py,这篇文章主要介绍了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区别 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python灰度变换中灰度切割分析实现

    Python灰度变换中灰度切割分析实现

    灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每个像素灰度值的方法。目的是改善画质,使图像显示效果更加清晰。图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分
    2022-10-10
  • Python制作七夕表白案例分享

    Python制作七夕表白案例分享

    这篇文章主要介绍了Python制作七夕表白案例分享,文章利用Python的基本操作实现七夕表白案例,需要的小伙伴可以参考一下
    2022-08-08
  • Pycharm在创建py文件时,自动添加文件头注释的实例

    Pycharm在创建py文件时,自动添加文件头注释的实例

    今天小编就为大家分享一篇Pycharm在创建py文件时,自动添加文件头注释的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Pandas多列值合并成一列的实现

    Pandas多列值合并成一列的实现

    本文主要介绍了Pandas多列值合并成一列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Python生成指定数量的优惠码实操内容

    Python生成指定数量的优惠码实操内容

    在本篇文章里小编给大家整理了关于Python生成指定数量的优惠码的实例内容以及相关代码,有需要的朋友们学习下。
    2019-06-06
  • Appium中scroll和drag_and_drop根据元素位置滑动

    Appium中scroll和drag_and_drop根据元素位置滑动

    本文主要介绍了Appium中scroll和drag_and_drop根据元素位置滑动,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • tensorflow 自定义损失函数示例代码

    tensorflow 自定义损失函数示例代码

    这篇文章主要介绍了tensorflow 自定义损失函数示例,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用

    Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用

    Python,numpy都有自己的一套数据格式,本文主要介绍了Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python-httpx的具体使用

    python-httpx的具体使用

    HTTPX是Python3的功能齐全的HTTP客户端,它提供同步和异步API,本文主要介绍了python-httpx的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python多线程threading模块用法实例分析

    Python多线程threading模块用法实例分析

    这篇文章主要介绍了Python多线程threading模块用法,结合实例形式分析了Python多线程threading模块原理、功能、常见应用及相关操作注意事项,需要的朋友可以参考下
    2019-05-05

最新评论