将__all__公开为列表的最干净方法

时间:2019-08-18 14:17:20

标签: python python-3.x

我有一个Python包,我想在其中公开一些类。我还需要在某些时候迭代这些类,因此我也想将__all__公开为类列表,而不是字符串。在尝试了无数种方法之后,我在__init__.py中确定了以下内容:

from .a import A
from .b import B
from .c import C
ALL = [A, B, C]
__all__ = [x.__name__ for x in ALL]

这行得通,因为我可以使用from package import *来获取所有类,还可以使用import package / package.ALL来遍历它们。

是否有一种更清洁(或更正确)的方法?我的主要抱怨是,如果要添加新类,则必须先导入将其添加到列表中的类。如果我可以将一个新类添加到一个地方,那将是理想的选择。

0 个答案:

没有答案