需求:给你一个 str,表示模块名,获取这个模块下面所有的 class name

差不多就是这个函数:

def get_class_names(module_name: str) -> List[str]:

函数定义好了,就让我们来它增加函数体吧!

这个时候我们需要借助一个内部库 inspect 来帮助我们更加简单优雅的实现功能

完整功能就贴下面了:

import sys
import inspect
from typing import List

module_name = 'services.events'


def get_class_names(module_name: str) -> List[str]:
    __import__(module_name)
    module = sys.modules[module_name]

    return [
        class_name
        for class_name, class_object in
        inspect.getmembers(module, inspect.isclass)
    ]


class_names = get_class_names(module_name)

print(class_names)

universe_king
3.4k 声望680 粉丝