84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
def f(p, k): def g(): print(k) if k == 0: f(g, 1) else: p() f(None, 0)
我觉得在f(None, 0)执行后,执行到f(g, 1)后k应该是1,但为什么执行还是0.
f(None, 0)
f(g, 1)
k
1
0
认证高级PHP讲师
這應該屬於閉包,我們可以把這段函數改一下
def f(k): def g(): print(k) return g a = 1 x = f(a) a = 2 x() # 打印出 # 1
這樣會不會更好理解一些呢可以看看這篇博客,他在底層說明了閉包的原理Python閉包詳解
這應該屬於閉包,我們可以把這段函數改一下
這樣會不會更好理解一些呢
可以看看這篇博客,他在底層說明了閉包的原理Python閉包詳解