я наткнулся на эту логику:Отправка функции в качестве аргумента другой функции
def f2(f):
def g(arg):
return 2 * f(arg)
return g
def f1(arg):
return arg + 1
f_2 = f2(f1)
print f_2(3)
С первого взгляда может показаться, что это очень простой код. Но для выяснения того, что здесь происходит, требуется некоторое время. Отправка функции в качестве аргумента другой функции для меня необычна. Хотя он работает, мне интересно, следует ли избегать такой техники (поскольку она сначала кажется довольно запутанной).
Это в основном то, как работают декораторы. –
Его довольно часто встречаются в языках, которые рассматривают функции как объекты первого класса - Javascript - это тот, который приходит на ум – xbonez
это также известно как декоратор в python ... очень распространенная практика –