为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取Python当前模块中所有类的列表?

如何获取Python当前模块中所有类的列表?

大话西游666 2019-11-22 11:18:30
我已经看到了很多人从一个模块中提取所有类的示例,通常是这样的:# foo.pyclass Foo:    pass# test.pyimport inspectimport foofor name, obj in inspect.getmembers(foo):    if inspect.isclass(obj):        print obj太棒了但是我无法找到如何从当前模块中获取所有类。# foo.pyimport inspectclass Foo:    passdef print_classes():    for name, obj in inspect.getmembers(???): # what do I do here?        if inspect.isclass(obj):            print obj# test.pyimport foofoo.print_classes()这可能确实很明显,但是我什么也找不到。谁能帮我吗?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

尝试这个:


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()带谓语。


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 2312 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信