Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами [RSS Feed]

#1 Авг. 20, 2017 09:43:07

Daleksy
Зарегистрирован: 2017-08-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами

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

Офлайн

#2 Авг. 20, 2017 10:28:50

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами

 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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 20, 2017 11:16:11

Daleksy
Зарегистрирован: 2017-08-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами

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)


Спасибо огромное!!!!!

Офлайн

  • Начало
  • » Центр помощи
  • » написать функцию, которая вызывает другую функцию в середине кода - обе с параметрами[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version