Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Как можно в linux-консоли обратиться к ТОЛЬКО ОДНОЙ функции в python-файле?

#linux #python_3x #функции #bash


Хотелось бы реализовать что-то типа "python3 проект.py --функция", и выдавалось только
то содержимое, что было в функции?

def func():
    print("Hello, World!")
def func2():
    print("World, Hello!")


И затем

$ python3 файл.py *колдовство, обращение только к функции func2*


Вывод был таким:

World, Hello!

    


Ответы

Ответ 1



Предлагаю такое решение: import sys def func(): print("Hello, World!") def func2(): print("World, Hello!") name = sys.argv[1] f = globals().get(name) if f: f() Пример использования: $ python file.py func Если функции с указанным именем не будет, скрипт ничего не выведет. Можете модифицировать его на вывод ошибки: if f: f() else: print('No such method: %s' % name)

Ответ 2



Если у вас есть module модуль, определённый в module.py файле, расположенный в одной из sys.path директорий (текущая директория включена в pythonpath для -c), то чтобы вызвать функцию function из этого модуля: $ python -c 'import module; module.function()'

Комментариев нет:

Отправить комментарий