Python - обращение к функции через "переменную"



Ох уж этот удивительный Python. Казалось бы, вот зачем задавать функции "переменную" и передавать через эту переменную параметры для функции? Но Python уже было не остановить.

Можно сделать так. Задаём несколько функций:
def zlaya_function(a, b): return a ** b def drugaya_function(a, b): return a + b def prosto_function(a, b): return a - b

Зетем формируем из них список:
dobro = [zlaya_function, drugaya_function, prosto_function]

Потом через индекс списка передаём параметры нужной функции:
print(dobro[0](2, 3)) # 8 print(dobro[1](2, 3)) # 5 print(dobro[2](2, 3)) # -1

Полный код:
def zlaya_function(a, b): return a ** b def drugaya_function(a, b): return a + b def prosto_function(a, b): return a - b dobro = [zlaya_function, drugaya_function, prosto_function] print(dobro[0](2, 3)) # 8 print(dobro[1](2, 3)) # 5 print(dobro[2](2, 3)) # -1

Жачем оно нужно? Да не нужно! Просто Python так может. И это прекрасно!!

Всем удачи!!

Комментариев нет:

Отправить комментарий