如何获取Python当前模块中所有类的列表?
发布于 2021-01-29 15:00:10
我已经看到了很多人从一个模块中提取所有类的示例,通常是这样的:
# foo.py
class Foo:
pass
# test.py
import inspect
import foo
for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj
太棒了
但是我无法找到如何从 当前 模块中获取所有类。
# foo.py
import inspect
class Foo:
pass
def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj
# test.py
import foo
foo.print_classes()
这可能确实很明显,但是我什么也找不到。谁能帮我吗?
关注者
0
被浏览
58
1 个回答
-
尝试这个:
import sys current_module = sys.modules[__name__]
在您的情况下:
import sys, inspect def print_classes(): for name, obj in inspect.getmembers(sys.modules[__name__]): if inspect.isclass(obj): print(obj)
甚至更好:
clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)
因为
inspect.getmembers()
带谓语。