Форум сайта python.su
def a(c): print("111") return c def b(): print("222") a(b)
Офлайн
a(b())
Офлайн
??? Потому что в соответствии с правилами языка она и не должна у вас исполняться.
Если у вас есть предложения по совершенствованию языка то напишите когда она по вашему должна была выполниться до print(111) или после, если функция из a будет передана в d то она должна два раза выполняться, как тогда сделать выполнение 1 раз? И чем это лучше традиционного подхода.
Офлайн
Vigi
Серьезно?
Franek
вы наверное хотели сделать
return c()
Офлайн
JOHN_16Ну да, а что не так?
Vigi
Серьезно?
“почему не исполняется тело функции b”я показал как сделать, что бы функция b отработала…
Отредактировано Vigi (Окт. 25, 2017 13:35:39)
Офлайн
Vigi
JOHN_16
спасибо, понял.
Подскажите, еще, пожалуйста.
def newfunc(n): def myfunc(x): return x + n return myfunc new = newfunc(100) # new - это функция new(200)
Офлайн
Franekчето мне кажеться что вы пытаетесь изобрести декораторы
VigiJOHN_16спасибо, понял.Подскажите, еще, пожалуйста.
Franekнет, new, это myfunc, ведь результатом выполнения newfunc() являеться myfunc
если new - это функция newfunc?
def newfunc(n): ....... return myfunc
[code python][/code]
Отредактировано PEHDOM (Окт. 25, 2017 20:44:23)
Офлайн
PEHDOM
спасибо, интересные статьи.
Офлайн
Vigi
из контекста можно было догадаться что речь идет не о принятии в качестве аргумента объекта и его последующего возврата без изменений. Но соглашусь что возможно это было очевидно не для всех, поэтому я может погорячился с этим.
Офлайн
JOHN_16Возможно. Что-то у меня с “вангованием” в тот день было не очень
из контекста можно было догадаться что речь идет не о принятии в качестве аргумента объекта и его последующего возврата без изменений.
JOHN_16ну да может и не для всех.)) Я специально ответил от противного давая понять автору, что вопросы нужно задавать более корректными (что бы не заниматься гаданием).
это было очевидно не для всех
JOHN_16Да нормально, я вроде не обжёгся
поэтому я может погорячился с этим.
Офлайн