سلام ممکنه درمورد این کد توضیح بدهید چرا 30 را چاپ میکنه ؟ لطفا خط به خط توضیح بدهید ؟
def add(x, y): return x + y def do_twice(func, x, y): return func(func(x, y), func(x, y)) a = 5 b = 10 print(do_twice(add, a, b))
سلام ممکنه درمورد این کد توضیح بدهید چرا 30 را چاپ میکنه ؟ لطفا خط به خط توضیح بدهید ؟
def add(x, y): return x + y def do_twice(func, x, y): return func(func(x, y), func(x, y)) a = 5 b = 10 print(do_twice(add, a, b))
سلام
در کد زیر یه تابع تعریف شده که 2 ورودی داره و یک خروجی که دو ورودی رو جمع میکنه و نتیجه رو در خروجی میده:
def add(x, y):
return x + y
و یک تابع داریم به این شکل:
def do_twice(func, x, y):
return func(func(x, y), func(x, y))
حالا یه فراخوانی که توی کد اومده رو در نظر بگیر:
do_twice(add, a, b)
تابع بالا رو یک بار با این ورودی ها ببین:
def do_twice(add, 5, 15):
return add(add(5, 10), add(5, 10))
فقط ورودی های تابع do_twice رو جایگذاری کردم.
add(add(5, 10), add(5, 10))
در این قسمت کد، تابع add دو با محاسبه میشه و مقدار هرکدوم به شکل زیر میشه:
add(15, 15)
و دوباره ایم دو عدد میشن ورودی تابع add و جواب آخر میشه 30 !!!
پاسخ ها