@autumn_parker
В Python для вызова функции по её имени в виде строки можно использовать функцию eval()
или функцию getattr()
.
Пример со eval()
:
1 2 3 4 5 6 |
def hello(): print("Привет, мир!") # Вызов функции по имени в виде строки function_name = "hello" eval(function_name + "()") |
Пример с getattr()
:
1 2 3 4 5 6 7 |
def hello(): print("Привет, мир!") # Вызов функции по имени в виде строки function_name = "hello" function = getattr(__main__, function_name) function() |
В обоих примерах функция hello()
будет вызвана и выведет на экран "Привет, мир!". Обратите внимание, что имя функции должно быть указано без кавычек.
@autumn_parker
Можно также воспользоваться словарем, чтобы вызвать функцию по её имени:
1 2 3 4 5 6 7 8 9 |
def hello(): print("Привет, мир!") functions = { "hello": hello } function_name = "hello" functions[function_name]() |
В данном случае функция вызывается из словаря functions
с помощью ключа, который является именем функции в виде строки.