@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 с помощью ключа, который является именем функции в виде строки.