参考链接 :https://blog.csdn.net/qq_41797451/article/details/145877735

1. 掉包注意事项

  1. 在 Python 3.2 及之前的版本中,init.py 是必需的,用于明确标识一个目录是包。
  2. 即使在 Python 3.3+ 中支持隐式命名空间包(即不需要 init.py),显式包含该文件仍然是一个良好的实践,因为它能提高代码的可读性和兼容性。
    在这里插入图片描述
    当 A 文件调用 B 文件的时候,需要一个__init__.py 文件是一个特殊的文件,主要用于标识一个目录是 Python 的包。
    作用:
  • init.py 文件中的代码会在包被首次导入时执行。这种特性非常适合执行一些全局的初始化操作,例如:初始化包级变量。加载配置文件或环境变量。建立数据库连接。注册插件或扩展。
# my_package/__init__.py
print("Initializing package...")
version = "1.0.0"
author = "Your Name"

  • 使用 all 变量可以限制通过 from package import * 导入的内容。这是一个重要的功能,可以防止意外暴露不必要的模块或对象。
# my_package/__init__.py
__all__ = ["module1", "func2"]
from .module1 import func1
from .module2 import func2
  • 支持相对导入, 在 init.py 中可以使用相对导入语法(如 from .module import name)来引用包内的其他模块。这有助于避免硬编码包名,从而提升代码的可维护性。如果包名发生变化,只需修改包的结构,而无需修改导入语句。
# my_package/__init__.py
from .module1 import func1
from .module2 import func2

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐