繁体   English   中英

如何在__init__.py中使用import *将docstrings引入包范围?

[英]How to bring docstrings into package scope with import * in __init__.py?

我有一个Python包,其中的实现被拆分(可维护性)为两个内部子模块。 从用户的角度来看,包应该显示为一个单元,因此在包的__init__.py两个子模块都使用import * ,如下所示:

# filesystem layout:
mypkg/
    __init__.py
    subA.py # defines class A
    subB.py # defines class B

# __init__.py
from .subA import *
from .subB import *

从包功能的角度来看,这是按预期工作的:

>>> import mypkg
>>> a = mypkg.A() # works
>>> b = mypkg.B() # works

如果直接查找这些类的内联帮助,一切都很好:

>>> help(mypkg.A) # works
>>> help(mypkg.subA.A) # also works

问题是,如果我只是查找顶级包的帮助,请参阅

>>> help(mypkg)

那么子模块中的类和函数根本不会“自愿”出现(尽管它们的变量确实出现在DATA部分中)。 这是预期/正确的行为,是否有办法绕过它,以便用户不必了解仅为实现/维护方便而存在的子模块?

我所知道的最佳解决方案是将相关的文档对象(类,函数,数据)添加到__init__.py __all__

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM