python - 如果某些目录没有该文件,在 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
这不起作用,因为发送a
topyclbr
将返回相同的数据 fora.a.a
和 for a.a.a.a
。所以,我必须发送完整的模块路径并为目录工作。
解决方案
将返回相同的数据 for
a.a.a
和 fora.a.a.a
由于我不熟悉pyclbr
,因此不清楚您指的是什么数据,但是如果您想要特定于 onlya.a.a
的内容,则需要将其写入 init 文件中
推荐阅读
- java - 关于无法分配内存的 JVM 崩溃
- python - Pyspark 使用 map 函数应用于列列表
- powershell - 用于排除 csv 中名称的 powershell 函数
- react-native - 从 React Native 中的另一个组件调用“帮助器”函数?
- flutter - 如何从 ChangeNotifier 推送路由?
- flutter - 在 Flutter 中将 Widget 彼此相邻放置
- javascript - 为什么 /.+\[[[0-9]+\]/g 不能正确拆分“hello[0][1][3]”
- c# - 环境数据作为 AsyncLocal
- java - 使用 LoggingEventCompositeJsonEncoder 的 Logback 在添加可抛出对象时不记录事件
- c# - 从服务中获取对象以允许使用 xUnit 和 Moq 运行测试