【Python】为什么要写__init__.py

文章目录

正常我们直接导入就可以执行,但是在package的时候,有一种__init__.py的特殊存在

引入moduleA.py,执行main.py,输出moduleA

PackageA(__init__特性)


加入package,在PackageA中加入__init__.py,优先执行__init__.py

应该往__init__.py里放什么东西?

1、包的初始化

环境变量、logging等

2、管理包的公共接口

包需要在外面被使用的东西

如果在main里引用moduleA里的x变量,会报错
ImportError: cannot import name 'x' from 'PackageA' (D:\Desktop\Python\Base\initPy\PackageA\__init__.py)


这样就需要在__init__.py中先引用

__all__的用法
通过*引入的话,all中的值才能被引用

3、包的信息

版本 version

作者 author

...


python 复制代码
print("成大事者,不拘小节")
相关推荐
咩咩啃树皮6 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚7 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧9 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
腾渊信息科技公司9 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地10 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415910 小时前
TCP超时重传机制是为了解决什么问题?
java
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
莫逸风13 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
C^h13 小时前
python函数学习
人工智能·python·机器学习