[英]Logic behind the Inner Function
我目前正在學習Python並按照教程進行裝飾。 但在潛水之前,我想要很好地掌握內部功能是如何工作的,並且我遇到了這段代碼。
def max(a, b, c):
def max2(x, y):
return x if x >= y else y
return max2(a, max2(b, c))
main_max = max(15, 5, 10)
print(main_max)
現在,我試圖理解它背后的邏輯,但我似乎無法理解傳遞參數的順序。 我在調試模式下運行它並逐步完成這些行,我注意到的是x被分配了b的值而y被分配了c的值。 這是為什么?
是因為在評估max2(a,max2(b,c))之前首先評估max2(b,c)的第二個參數?
Max有三個參數。 Max2有兩個參數。 唯一相關的代碼行是
return max2(a, max2(b, c))
我們知道a
是a
。 為了繼續計算,我們需要解決(使用max2
) b
或c
的較大者。 換句話說, max2(15, max2(5, 10))
可以被認為是
t = max2(5, 10) # (5 ? 10) = 10
return max2(15, t) # (15 ? 10) = 15
唯一要認識到的是max2
的范圍被限制在max
范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.