Как вызвать функцию передав название функции как строку в python?

Пользователь

от autumn_parker , в категории: Python , 7 месяцев назад

Как вызвать функцию передав название функции как строку в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jose , 7 месяцев назад

@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() будет вызвана и выведет на экран "Привет, мир!". Обратите внимание, что имя функции должно быть указано без кавычек.