运维.售后
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
博客
Blog
ToB门户
了解全球最新的ToB事件
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
PyCharm中New Directory 和 New Python Package的区别 ...
PyCharm中New Directory 和 New Python Package的区别
汕尾海湾
金牌会员
|
2024-2-24 21:01:55
|
显示全部楼层
|
阅读模式
楼主
主题
940
|
帖子
940
|
积分
2820
如题,这是一个很简单也很基础的问题,先看不同操作的结果有什么不同
结果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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
汕尾海湾
金牌会员
这个人很懒什么都没写!
楼主热帖
RabbitMQ 进阶 -- 阿里云服务器部署Rab ...
在Ubuntu系统上安装StoneDB数据库 ...
Spark快速上手(3)Spark核心编程-RDD转 ...
基于FPGA的一维卷积神经网络CNN的实现 ...
Vue 全套教程(二),入门 Vue 必知必 ...
redis实现主从复制
Silverlight教程_编程入门自学教程_菜 ...
一文了解袋鼠云在实时数据湖上的探索与 ...
用开源github,还是咱中国自己的代码托 ...
Kafka生产者
标签云
存储
服务器
快速回复
返回顶部
返回列表