Как запустить функцию из другого файла?

Для выполнения функции из другого файла в Python можно использовать несколько подходов. Рассмотрим два основных способа.

1. Использование инструкции import:
Вам необходимо импортировать модуль, содержащий требуемую функцию, с помощью ключевого слова import. После этого можно вызывать функцию с использованием синтаксиса <имя модуля>.<имя функции>. Если функция находится в том же каталоге, что и текущий файл, можно просто указать имя модуля (без .py расширения).
Пример:

   import mymodule
   
   mymodule.myfunction()  #Вызов функции из другого файла

Если функция имеет длинное или сложное имя, вы можете использовать ключевое слово as для задания псевдонима импортируемого модуля. Также можно импортировать только отдельную функцию из модуля с использованием синтаксиса from <имя модуля> import <имя функции>.
Пример:

   import mymodule as mm
   
   mm.myfunction()  #Вызов функции из другого файла с псевдонимом
   from mymodule import myfunction
   
   myfunction()  #Вызов функции из другого файла без указания имени модуля

2. Использование инструкции exec и функции exec:
Если вам необходимо вызвать функцию из файла по его имени в виде строки (например, имя файла было получено из пользовательского ввода или аргументов командной строки), можно использовать функцию exec. Эта функция выполняет переданную ей строку кода, в том числе и вызов функции.
Пример:

   filename = "mymodule.py"
   functionname = "myfunction"
   
   # Загрузка содержимого файла в строку
   with open(filename, 'r') as file:
       code = file.read()
   
   # Выполнение кода с помощью функции exec
   exec(code)
   
   # Вызов функции по её имени
   exec(functionname + '()')

Обратите внимание, что использование функции exec может быть опасным, так как она выполняет переданный код, включая потенциально вредоносный код.

Важно отметить, что при использовании любого из этих подходов необходимо убедиться, что файл с исходным кодом функции существует и доступен в том же каталоге или в системном пути поиска модулей (sys.path).