第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

這樣的代碼執(zhí)行后fs=[f(1),f(2),f(3)]嗎

這樣的代碼執(zhí)行后fs=[f(1),f(2),f(3)]嗎

stefan71 2016-11-26 11:29:03
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()
查看完整描述

1 回答

?
Iamxiaoq

TA貢獻(xiàn)33條經(jīng)驗(yàn) 獲得超6個(gè)贊

閉包問題,首先,你得先明白在python里面,一切皆對(duì)象,函數(shù)也是一個(gè)對(duì)象。

在函數(shù)這個(gè)對(duì)象里面有一個(gè)特殊的屬性,那就是__closure__,這是函數(shù)的一個(gè)閉包屬性(姑且這么叫吧),用來存儲(chǔ)其引用的外層函數(shù)的變量,該屬性在定義的時(shí)候創(chuàng)建,而不是執(zhí)行時(shí)??磮D

http://img1.sycdn.imooc.com//583d7aa20001972c04890263.jpg

然后再理解一下代碼應(yīng)該沒多大問題了

def?count():
????fs?=?[]
????for?i?in?range(1,?4):
????????def?f(j):
????????????def?g():
????????????????#?return?__closure__[0].cell_contents?*?__closure__[0].cell_contents
????????????????return?j*j?
????????????return?g
????????#?執(zhí)行f(i)返回創(chuàng)建函數(shù)g返回,此時(shí)g.__closure__[0].cell_contents存儲(chǔ)的就是i的值
????????#?[g.__closure__[0].cell_contents=1,?g.__closure__[0].cell_contents=2,?g.__closure__[0].cell_contents=3]
????????r?=?f(i)?
????????fs.append(r)
????return?fs

f1,f2,f3=count()
print?f1(),?f2(),?f3()

水平有限,只能解釋成這樣了。

查看完整回答
反對(duì) 回復(fù) 2016-11-29
  • 1 回答
  • 0 關(guān)注
  • 1653 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)