Вызов функции модуля с использованием его имени (строки)

Перед тем как вернуться к основной ветке, вам нужно добавить и зафиксировать изменения в ветке.

Использование:

git checkout mywork
# Modify files

git add . # Adds all edited files to the repository
git commit -m "Message about the changes"

git checkout master

Вы можете найти много информации о Git в Git Book

1468
задан Tommy Herbert 23 January 2019 в 15:03
поделиться

4 ответа

Принятие модуля foo с методом bar:

import foo
method_to_call = getattr(foo, 'bar')
result = method_to_call()

, Насколько это идет, строки 2 и 3 могут быть сжаты до:

result = getattr(foo, 'bar')()

, если это имеет больше смысла для Вашего варианта использования. Можно использовать getattr этим способом на связанных методах экземпляра класса, методах уровня модуля, методы класса..., список продолжается.

1770
ответ дан Ben Hoyt 23 January 2019 в 15:03
поделиться

Решение Patrick является, вероятно, самым чистым. Если необходимо динамично взять модуль также, можно импортировать его как:

module = __import__('foo')
func = getattr(module, 'bar')
func()
293
ответ дан Ben Hoyt 23 January 2019 в 15:03
поделиться

Это - простой ответ, это позволит Вам очищать экран, например. Ниже существует два примера, с оценкой и должностным лицом, которое распечатает 0 наверху после очистки (если Вы используете Windows, изменение clear к cls, пользователи Linux и пользователи Mac уезжает, как, например) или просто выполняют его, соответственно.

eval("os.system(\"clear\")")
exec("os.system(\"clear\")")
-2
ответ дан 22 November 2019 в 20:13
поделиться
locals()["myfunction"]()

или

globals()["myfunction"]()

locals возвращает словарь с текущей таблицей локальных символов. globals возвращает словарь с глобальной таблицей символов.

498
ответ дан 22 November 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: