Я бы разбил проблему на две части: превращение списка файлов в список модулей, затем расширение класса для включения функций из этих модулей.
Бретт Кэннон рассмотрел какимпортировать модуль только из пути к файлу , поэтому я не буду дублировать его здесь ... Хотя я предлагаю вам проверить модуль glob .
Во-вторых, какрасширить класс, чтобы включить функции из плагина.Я бы использовал что-то вроде этого:
def extend(obj, plugin_modules):
for module in plugin_modules:
for export_name in dir(module):
export = getattr(module, export_name)
if callable(export):
setattr(obj, export_name, export)
class MyClass(object):
… code …
extend(MyClass, plugin_modules)
ОДНАКО, я предупреждаю вас, что маловероятно , что это то, что вы хотите, так как функции "плагина" на MyClass
выиграли "t ведут себя точно так же, как нативные методы ... Если вы дадите больше информации о том, что вы пытаетесь сделать, я мог бы дать более полезный ответ.