Как динамически вызовать функции из динамически загруженных модулей на основе пользовательского ввода, без жесткого кодиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как динамически вызовать функции из динамически загруженных модулей на основе пользовательского ввода, без жесткого коди

Сообщение Anonymous »

Я пытаюсь создать свой первый проект, где я делаю свой собственный модуль. Я хочу, чтобы он был динамическим, чтобы я мог просто поместить файл Python в каталог модулей, и его функции перечислены на выборе, когда я запускаю Code.py за пределами каталога модулей.
В каталоге модулей init .

Код: Выделить всё

# __init__.py
import os
list_files = os.listdir(path="/home/inf-everything/projects/python/module")
def filter_py(file_name:str) -> bool:
if file_name.endswith(".py") and file_name != "__init__.py":
return True
else:
return False
def remove_py_extension(file_name:str) -> str:
file_name_list = list(file_name)
sorted_file_list = file_name_list[len(file_name_list)-4::-1]
sorted_file_list2 = sorted_file_list[::-1]
sorted_file_name = "".join(sorted_file_list2)
return sorted_file_name

python_files = list(filter(filter_py,list_files))
python_files_without_py_extension = list(map(remove_py_extension,python_files))
__all__ = python_files_without_py_extension

< /code>
Вывод, когда я запускаю его < /p>
/home/inf-everything/projects/python/.venv/bin/python /home/inf-everything/projects/python/module/__init__.py
['test1', 'morgue_algo']
< /code>
Вот код файла, который импортирует модуль < /p>
import module
#dir(test1)[:7:-1]]
list_files = module.__all__

print(module.__all__)
method_to_use = input("enter a method : ")

string  = input("enter your string :") # prompting the user with the "string" to enter something which will be stored in the form of string

try :
module.test1.hello(string)
pass
except Exception as e:
print(e)

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

Подробнее здесь: https://stackoverflow.com/questions/796 ... ed-on-user
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»