首页 > 解决方案 > 如果某些目录没有该文件,在 Python 代码库的子目录中添加“__init__.py”有什么缺点?

问题描述

__init__.py从 Python 3.3 开始,在源代码的每个目录中都有一个强制被删除了。我的目标是使用pyclbr. 但是,在某些情况下,特定模块是其他模块的子模块,并且并非所有父模块都是包。pyclbr不明白目录和包的区别。

所以,在尝试解决这个问题时,我想__init__.py在每个不是包的目录中添加文件。我不确定缺点是什么。我有这种偏离 Python 社区设定的标准的禁忌,这可能会在以后的某个时候导致错误。

如上面的超链接所述,我可以只指定模块并给出其完整路径,pyclbr但这在以下源代码结构的情况下不起作用:

(gruml) ➜  gruml git:(run-sequence-diagram) ✗ tree a
a
└── a
    └── a
        ├── __init__.py
        └── a.py

2 directories, 2 files

这不起作用,因为发送atopyclbr将返回相同的数据 fora.a.a和 for a.a.a.a。所以,我必须发送完整的模块路径并为目录工作。

标签: pythonpython-3.xcpython

解决方案


将返回相同的数据 fora.a.a和 fora.a.a.a

由于我不熟悉pyclbr,因此不清楚您指的是什么数据,但是如果您想要特定于 onlya.a.a的内容,则需要将其写入 init 文件中


推荐阅读