Как импортировать модули из папки и добавить их в список Python? - PullRequest
0 голосов
/ 29 мая 2020

Я импортировал модули из папки плагинов, используя модуль importlib:

plugin_files = os.listdir("plugins")
for plugin_file in plugin_files:
   importlib.import_module(plugin_file)

Как я могу добавить эти модули в список plugins = list(), чтобы, когда я oop через них я могу вызвать их функцию, они делить общее (интерфейс)? Например:

for plugin in plugins:
   plugin.send_notification()

Я попытался заглянуть в документацию модуля importlib, однако ничего не вижу о модулях группировки и перечисления.

1 Ответ

1 голос
/ 29 мая 2020

Я считаю, что они должны работать.

plugin_files = os.listdir("plugins")
plugins = []
for plugin_file in plugin_files:
    plugins.append(importlib.import_module(plugin_file))

for plugin in plugins:
    plugin.send_notification()

OR

plugins = list(map(importlib.import_module,os.listdir("plugins")))
for plugin in plugins:
    plugin.send_notification()

Быстрый тест ниже:

class test:
    def __init__(self,name):
        self.name = name

plugins = list(map(test,['bob','jim']))

for plugin in plugins:
    print(plugin.name)
bob
jim
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...