Форум сайта python.su
Ребят,
помогите пожалуйста понять, каким образом x стал равен 10? Второй день смотрю на код и не могу понять(((
И если не сложно, посмотрите пожалуйста комментарии(они упорядочены), я их правильно понял?
def a(func, arg): return func(func(arg)) #2: Соответственно, эту строку можно читать так: return b(b(10)) def b(x): #3: = b(10) return x + 5 #4: = 10+5 = 15 print(a(b, 10)) #5: 15+5 = 20 #1: func = b, arg=10
Отредактировано FishHook (Авг. 6, 2022 15:53:06)
Офлайн
KamilKamilНо ваша программа пишет 20 а не 10
Заранее спасибо!!!!
Офлайн
Все правильно. Результат кода = 20.
Но в процессе выполнения кода, “x” становится равен 10. Я не могу понять, как это происходит.
Офлайн
def a(func, arg):# (функция, аргумент = 10) # return func(func(arg) разложим по строкам этот момент a = func(arg) # вызываем функц b(10) - вернет 15. вот тут х получает значение 10 из аргумента a_1 = func(a)# еще раз вызываем функц b(15) - вернет 20 где аргумент предыдущий вызов b return a_1 def b(x): return x + 5 print(a(b, 10))
Офлайн
marvellikСпасибо)
Офлайн