hydelios 2021-05-26 10:57 采纳率: 20%
浏览 18

python如何自动加载一个包里的制定类

目前有一个包里是各种功能类,这些功能类继承了一个基类,我想自动获取除了基类以外的所有类,并调用功能类里的一个方法。应该怎么做?

  • 写回答

1条回答 默认 最新

  • 编程漫步者 2023-03-03 14:02
    关注

    您可以使用 Python 内置的 inspect 模块来自动获取一个包里所有的类。以下是一个简单的代码示例,可以实现您所需要的功能:

    import inspect
    import your_package
    
    # 获取 your_package 中的所有类
    classes = inspect.getmembers(your_package, inspect.isclass)
    
    # 遍历所有类,查找除基类以外的其他功能类
    for name, cls in classes:
        if issubclass(cls, your_package.BaseClass) and cls is not your_package.BaseClass:
            # 在这里调用功能类中的方法,例如调用方法 func()
            obj = cls()
            obj.func()
    

    这个例子假设你的包中基类的名称为 BaseClass。这个代码会获取 your_package 中所有的类,然后对每个类判断是否继承自 BaseClass 并且不是 BaseClass 本身,如果是,则创建一个该类的实例,并调用 func() 方法。您可以根据您的实际需求更改这段代码。

    评论

报告相同问题?

悬赏问题

  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥15 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关
  • ¥15 opencv.js内存,CPU飙升