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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

閉包函數(shù) 綁定的外部變量問(wèn)題

'''

Python進(jìn)階2-8返回函數(shù)

Python進(jìn)階2-8返回函數(shù)

Python進(jìn)階2-8返回函數(shù)

'''

# 但是,如果返回一個(gè)函數(shù),就可以“延遲計(jì)算”: ?

def calc_sum(lst):

? ? def lazy_sum():

? ? ? ? return sum(lst)

? ? return lazy_sum ? ? ? # 試試 return lazy_sum()




# 調(diào)用calc_sum()并沒有計(jì)算出結(jié)果,而是返回函數(shù):

f = calc_sum([1, 2, 3, 4]) ?# 【相當(dāng)于將函數(shù)名lazy_sum賦值給變量f】

k = calc_sum([1, 2, 3, 4])

j = calc_sum([1, 2, 4, 5])

print(id(f),f.__closure__[0].cell_contents) ? # 再看看k和j,發(fā)現(xiàn)三者內(nèi)存地址,__closure__屬性是不同的

print(id(k),k.__closure__[0].cell_contents)

print(id(j),j.__closure__[0].cell_contents)


# 對(duì)返回的函數(shù)進(jìn)行調(diào)用時(shí),才計(jì)算出結(jié)果:

f() ?# 返回10




#########################################################

'''

Python進(jìn)階2-9閉包

Python進(jìn)階2-9閉包

Python進(jìn)階2-9閉包

'''

# 希望一次返回3個(gè)函數(shù),分別計(jì)算1x1,2x2,3x3:

def count():

? ? fs = []

? ? for i in range(1, 4):

? ? ? ? def f():

? ? ? ? ? ? ?return i*i

? ? ? ?#print(id(f),f.__closure__[0].cell_contents,id(i))

? ? ? ? fs.append(f)

? ? return fs


f1, f2, f3 = count()

#print(id(f1),f1.__closure__[0].cell_contents,id(f2),f2.__closure__[0].cell_contents,id(f3),f3.__closure__[0].cell_contents)

print(f1(),f2(),f3())

'''

你可能認(rèn)為調(diào)用f1(),f2()和f3()結(jié)果應(yīng)該是1,4,9,但實(shí)際結(jié)果全部都是 9

(請(qǐng)自己動(dòng)手驗(yàn)證)。

原因就是當(dāng)count()函數(shù)返回了3個(gè)函數(shù)時(shí),這3個(gè)函數(shù)所引用的變量 i 的值

已經(jīng)變成了3。由于f1、f2、f3并沒有被調(diào)用,所以,此時(shí)他們并未計(jì)算 i*i,

當(dāng) f1 被調(diào)用時(shí):

'''

print(f1()) ? ?# 返回9 # 因?yàn)閒1現(xiàn)在才計(jì)算i*i,但現(xiàn)在i的值已經(jīng)變?yōu)?



正在回答

2 回答

為什么 第二個(gè)實(shí)例中 的 變量i 最終變成了3。

而第一個(gè)實(shí)例中的 lst 沒有改變。

0 回復(fù) 有任何疑惑可以回復(fù)我~

你的問(wèn)題是?

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
python裝飾器
  • 參與學(xué)習(xí)       50128    人
  • 解答問(wèn)題       51    個(gè)

本門python教程將代領(lǐng)大家輕松搞定Python裝飾器運(yùn)用

進(jìn)入課程

閉包函數(shù) 綁定的外部變量問(wèn)題

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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