這樣理解對不對
def count(): ? ?fs = [] ? ?for i in range(1, 4): ? ? ? ?def g(j): ? ? ? ? ? ?def h(): ? ? ? ? ? ? ? ?return j * j ? ? ? ? ? ?return h ? ? ? ?f = g(i) ? ? ? ?fs.append(f) ? ?return fs f1, f2, f3 = count() print f1(), f2(), f3() 這題我也繞暈了好久,我的理解:我們可以看到h()其實是沒有入參的,所以它里邊的j值是不會改變的,是多少就是多少,大家看看對不?
2020-04-16
閉包是對于兩個函數的,當進入外部函數時,如果內部函數引用了外部函數的變量,那么這個變量在進入外部函數那一刻就應該是不變的。g() == 外部函數、 h() == 內部函數? j就是這個變量? h()入不入參不影響