Форум сайта python.su
Всем привет!
Я еще совсем новичок в пайтоне. Потому мне нужна ваша помощь.
У меня задача такая (пишу упрощенно).
Есть:
def func(a, b):
print (a+b)
Мне надо написать функцию, при вызове которой в таком формате - func_extra(param1, param2, f = func(“2”, “3”))
выполнялись бы действия в такой последовательности:
print(param1)
print(a + b) - здесь вызвалась func
print(param2)
И чтобы в дальнейшем я могла менять параметры func_extra и саму вложенную функцию.
Я читала про декораторы, но, как поняла, с их помощью нельзя сделать параметры динамическими. А мне именно это и надо. Эту функцию func_extra(param1, param2, f = func(“2”, “3”)) мне надо будет выхывать в разных частях кода и подставлять туда каждый раз разные параметры и функции.
Помогите, пожалуйста!…..
Офлайн
In [2]: def func_extra(param1, param2, f): ...: print(param1) ...: f() ...: print(param2) In [6]: def func(a, b): ...: def wrapper(): ...: print(a, b) ...: return wrapper ...: In [7]: my_func = func(1, 2) In [8]: func_extra('A', 'B', my_func) A 1 2 B
Офлайн
JOHN_16
In : def func_extra(param1, param2, f):
…: print(param1)
…: f()
…: print(param2)
In : def func(a, b):
…: def wrapper():
…: print(a, b)
…: return wrapper
…:
In : my_func = func(1, 2)
In : func_extra('A', ‘B’, my_func)
Офлайн