Найти - Пользователи
Полная версия: написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами
Начало » Центр помощи » написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами
1
Daleksy
Всем привет!
Я еще совсем новичок в пайтоне. Потому мне нужна ваша помощь.
У меня задача такая (пишу упрощенно).
Есть:
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”)) мне надо будет выхывать в разных частях кода и подставлять туда каждый раз разные параметры и функции.
Помогите, пожалуйста!…..
JOHN_16
 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
Daleksy
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)


Спасибо огромное!!!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB