gpt4 book ai didi

python - 如何在 Python 中列出导入的类?

转载 作者:行者123 更新时间:2023-12-04 08:29:47 25 4
gpt4 key购买 nike

from module import a, b, c
foo(a)
foo(b)
foo(c)
有没有办法避免调用 foo(x)对于每个导入的对象?
一些上下文:a、b、c 是网页类,而 foo 是一个 route() 函数,它为每个网页创建一个路由。
更新:随着应用程序的增长,主模块中的导入类列表将会不断增加。我只是作为一个例子提到了 a、b 和 c。我正在寻找类似 import a, b, c to classes_list 的东西然后我可以遍历 classes_list而不是在每个导入的类上调用 foo 。

最佳答案

假设您没有其他导入,您可以遍历 globals().items() 以收集所有类。如果您的整体导入中有其他类,您可能需要进一步过滤。

import inspect
from pandas import DataFrame, Grouper, ExcelFile

imps = globals().items()
filtered_imps = [x[1] for x in imps if inspect.isclass(x[1])]
print(filtered_imps)
产生:
[<class '_frozen_importlib.BuiltinImporter'>, <class 'pandas.core.frame.DataFrame'>, <class 'pandas.core.groupby.grouper.Grouper'>, <class 'pandas.io.excel._base.ExcelFile'>]
那么你可以 foo()根据需要在循环中或作为理解的一部分覆盖列表,可能使用 try ... except处理途中的异常。

关于python - 如何在 Python 中列出导入的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65080864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com