目前有一个包里是各种功能类,这些功能类继承了一个基类,我想自动获取除了基类以外的所有类,并调用功能类里的一个方法。应该怎么做?
您可以使用 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() 方法。您可以根据您的实际需求更改这段代码。