Я думаю, правильное решение для этого будет dict
.Также это дает вам некоторую гибкость, чтобы дать различные строковые ключевые слова для функций.Код:
def add(a, b):
print(a + b)
def mul(a, b):
print(a * b)
def sub(a, b):
print(a - b)
functions = {
'add': add,
'sub': sub,
'mul': mul
}
a = 10
b = 5
x = input('Choose a function : ')
if x not in functions:
print(f"Function \"{x}\" is not defined.")
else:
functions[x](a, b)
Но если вы считаете, что вызов функции по названию строки на 100% необходим, вы можете получить ссылку на функцию из globals()
:
func = globals().get(x, None)
if not x:
print(f"Function \"{x}\" is not defined.")
else:
func(a, b)