![](/img/trans.png)
[英]What is happens in Python when `func = func.__call__` is executed?
[英]Python: what happens when code is executed, what's the logic?
我是Python的初學者,我確實需要幫助來了解此代碼的工作原理。 我需要寫下該程序的功能-打印什么,以及變量的值隨着程序的執行而變化。 我知道需要調用函數,並且知道循環的工作方式,但是令我感到困惑的是最后一行。 如果只是print(funk2(a,a)),程序將輸出5、5,if,return和5。但是,如果它是參數會怎樣?
def funk2(x, y):
print(x)
print(y)
while x > 1:
if y == 2 or not x > y:
x -= 4
print("if")
elif y != 4:
print("return")
return y
else:
print("else")
x += 2
print("return")
return 5
a = 5
print(funk2(a + 1, funk2(a, a)))
讓我們僅分解最后一行:
funk2(a + 1, funk2(a, a))
首先將評估funk2(a, a)
,然后返回一個值(假設它對應於x
)。 然后它將評估a+1
,其中a = 5
,所以6
。
然后,最后它將調用函數funk2
:
funk2(6, x)
而已!
您也可以這樣寫最后一行:
b = a + 1
c = funk2(a, a)
print(funk2(b, c))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.