【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("成大事者,不拘小节")
相关推荐
kong@react1 分钟前
Rocky Linux 10.2 全面解析:企业级 CentOS 替代方案及保姆级docker安装
java·linux·运维·docker
未若君雅裁7 分钟前
JVM 运行时数据区:程序计数器、堆、虚拟机栈与栈帧
java·jvm
Metaphor69223 分钟前
使用 Python 给 PDF 设置背景色或背景图
数据库·python·pdf
Zender Han35 分钟前
Android APK 签名 v1、v2、v3、v4 有什么区别?
android
神仙别闹39 分钟前
基于 PHP + MySQL学生信息管理系统
android·mysql·php
凡人叶枫40 分钟前
Effective C++ 条款10:令 operator= 返回一个 reference to *this
java·linux·服务器·开发语言·c++·effective c++
郝亚军40 分钟前
如何让pycharm-2026.1.2顶部菜单栏固定显示在最上端
python
摇滚侠44 分钟前
JavaSE 和 JavaEE 是什么意思
java·java-ee
想带你从多云到转晴1 小时前
03、JAVAEE---多线程(三)
java