我可以将文件的类保存到列表中吗?

2024-04-26 11:52:27 发布

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

假设我有两份档案。 第一个是a.py,在这里我定义了许多类:

class A:
    pass

class B:
    pass

class C:
    pass

...

在第二个文件b.py中,我希望访问列表中的a.py类。我该怎么做

# class_list is the classes of a.py
for class_def in class_list:
    do_something(class_def)

Tags: 文件oftheinpy列表for定义
1条回答
网友
1楼 · 发布于 2024-04-26 11:52:27

一种方法是迭代模块属性并获取类,如注释中所述。但这样很容易泄漏由a.py导入的类和不打算导出到b.py的类

例如,在a.py中,我会将其显式化:

exported = [A, B, C]

b.py中:

for cls in a.exported:
    do_something(cls)

或者,您可以使用decorators以一种更为奇特的方式,在a.py

exported = []

def export(cls):
     exported.append(cls)
     return cls

@export
class A:
    pass

...

b.py保持不变

相关问题 更多 >