Я не рассчитывал это, но почему бы вам не упростить ваш код.Глядя на ваш код, вы хотите импортировать модуль, который находится в том же каталоге, что и этот файл.По умолчанию, когда вы импортируете модуль, он ищет его в первую очередь.
Сначала давайте создадим несколько файлов для импорта всех в одном каталоге:
First.py
def display_first():
print("I'm first")
Second.py
def display_second():
print("I'm second")
Third.py
def display_third():
print("I'm third")
Один из способовсделать это, поместив ваши модули в диктовку, которую вы можете использовать впоследствии.Я использую здесь понимание слова, чтобы построить его:
Solution1.py
import importlib
modules_to_import = ["First", "Second", "Third"]
modules_imported = {x: importlib.import_module(x) for x in modules_to_import}
modules_imported["First"].display_first()
modules_imported["Second"].display_second()
modules_imported["Third"].display_third()
Или, если вы действительно хотите использовать, чтобы использовать точечную записьчтобы получить доступ к содержимому модуля, вы можете использовать с именем tuple , чтобы помочь:
Solution2.py
import importlib
import collections
modules_to_import = ["First", "Second", "Third"]
modules_imported = collections.namedtuple("imported_modules", modules_to_import)
for next_module in modules_to_import:
setattr(modules_imported, next_module, importlib.import_module(next_module))
modules_imported.First.display_first()
modules_imported.Second.display_second()
modules_imported.Third.display_third()