亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求助 閉包問題

def count():
? ?fs = []
? ?for i in range(1, 4):
? ? ? ?def f(j):
? ? ? ? ? ?def g():
? ? ? ? ? ? ? ?return j*j
? ? ? ? ? ?return g
? ? ? ?r = f(i)
? ? ? ?fs.append(r)
? ?return fs
f1, f2, f3 = count()
print f1(), f2(), f3()

在 r = f(i)處不理解 ? f(i) == g 而不是 g(),這個r是否等于 j*j ? 是不是r() 才等于j*j,fs.append(r)添加的是什么啊

測試如下

def f(i):

????def g():

????????return i*i

????return g

>>> f(1)

<function f.<locals>.g at 0x01106A08>

>>> f(1)()

1

>>> f(9)()

81

>>> q = f(8)

>>> q

<function f.<locals>.g at 0x01106A08>


正在回答

1 回答

現在知道了 ? 上部分代碼最后print f1(), f2(), f3() ?有括號了.....哎。。。看代碼不仔細.以后留意

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

求助 閉包問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號