有没有一种方法可以避免在高度模块化的python库中使用过多的u init_u.py?

2024-10-03 19:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个包含多个图像处理块的Python项目,其多级文件夹如下:

folder1
  __init__.py
  somecode1.py

  folder11
    __init__.py
    somecode11.py

    folder111
      __init__.py
      somecode111.py

  folder12
    __init__.py
    somecode12.py

  .......

folder2
  __init__.py
  somecode2.py
  ....

这使我能够非常容易地启用这些模块,例如:

^{pr2}$

拥有这么多init.py会给我的项目留下太多的文件。
是否可以有:
(1) 我的代码的这样一个文件夹结构
(2) 如上所述导入模块的能力

上面的每一级都没有那么多的初始化py?在

我为什么要这个?
-以减少在git存储库中看到这么多文件的认知负担。在


Tags: 模块文件项目py文件夹init图像处理folder1
1条回答
网友
1楼 · 发布于 2024-10-03 19:30:03

任何带有__init__.py文件的目录都被视为Python包。包中的不同模块以与普通模块类似的方式导入,但对__init__.py文件有特殊的行为,该文件用于收集所有包范围的定义。在

目录root/中的a.py与语句import root.a一起导入。此语句将在根目录中查找__init__.py文件,执行其所有顶层语句。然后,它将查找名为root/a.py的文件并执行其所有顶层语句。在这些操作之后,在a.py中定义的任何变量、函数或类都可以在root.a命名空间中使用。在

有一种方便的语法可用于导入深度嵌套的包:import very.deep.module例如。这允许您使用示例来代替very.deep.module的冗长重复。在

相关问题 更多 >