2024-04-26 11:52:27 发布
网友
假设我有两份档案。 第一个是a.py,在这里我定义了许多类:
a.py
class A: pass class B: pass class C: pass ...
在第二个文件b.py中,我希望访问列表中的a.py类。我该怎么做
b.py
# class_list is the classes of a.py for class_def in class_list: do_something(class_def)
一种方法是迭代模块属性并获取类,如注释中所述。但这样很容易泄漏由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保持不变
一种方法是迭代模块属性并获取类,如注释中所述。但这样很容易泄漏由
a.py
导入的类和不打算导出到b.py
的类例如,在
a.py
中,我会将其显式化:在
b.py
中:或者,您可以使用decorators以一种更为奇特的方式,在
a.py
:而
b.py
保持不变相关问题 更多 >
编程相关推荐