Ich habe einige Module, die in verschiedenen Verzeichnissen sind. Wie kann ich Klassen in diesen module
nur dann instanziieren, wenn die Klassen Unterklassen von ParentClass
sind? Im Grunde versuche ich so etwas wie dies unten und wissen wollen, wie ich child_class_name
implementieren DiesesInstantiate Python-Unterklassen aus verschiedenen Verzeichnissen
from importlib.machinery import SourceFileLoader
from parent_class import ParentClass
instances = []
script_path1 = r'/some/different/directory/some_child.py'
script_path2 = r'/some/different/directory/another_child.py'
for script_path in [script_path1, script_path2]:
module = SourceFileLoader('module', script_path).load_module()
child_class_name = "If a class in this module is a subclass of ParentClass"
ChildClass = getattr(module, child_class_name)
instances.append(ChildClass())
Ich verstehe nicht, was Sie brauchen genau, wie überprüft man, ob 'ChildClass' eine Unterklasse ist? oder Schleife durch alle Klassenobjekte im Modul, um herauszufinden, welches eine Unterklasse ist? – PRMoureu
Letztere, durchlaufen Sie alle Klassenobjekte im Modul, um herauszufinden, welche eine Unterklasse ist, damit ich 'ChildClass' erstellen kann. Danke! –