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

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

閉包 整理,暫時(shí)理解函數(shù)執(zhí)行順序

標(biāo)簽:
Python

内层函数引用外层函数的变量,返回内层函数成为闭包。
如:

def calc_sum(lst):
     def lazy_sum():
         return sum(lst)   #内层函数引用外层函数的变量
      return lazy_sum  #返回内层函数

例子1:

def count():
    fs = []    #初始化fs
    for i in range(1,4):
        def f():
            return i*i
        fs.append(f)
    return fs  #返回的是函数f
f1,f2,f3 = count()  #调用count()函数:经过for循环,i=1:fs=[f], i=2:fs=[f f] ,i=3:fs=[f f f]
print(f1(),f2(),f3())    #当调用f()函数时,此时i的值为3,输出 9 9 9 

开始 我以为 for循环随着i的值的改变,会执行3次f(),这个想法是错的,并不是顺序执行,而是调用到函数f(),才会执行到f(),也就是Print f1(),f2(),f3()的时候才会执行def f(): return i*i

例子2

def count():
    fs = []
    for i in range(1,4):
        def f(m = i):
            return m ** 2
        fs.append(f)
    return fs
f1,f2,f3 = count()
print(f1(),f2(),f3())  #输出1 4 9

例子3

def count():
    fs = []
    for i in range(1,4):
        def f(j):
            def g():
                return j*j
            return g
        r = f(i)    #r是g()的闭包
        fs.append(r)  #fs存的是g()闭包的三个实现,分别在输入1,2,3的时候
    return fs
f1,f2,f3 = count() #f1,f2,f3是三个闭包
print(f1(),f2(),f3())  #输出1 4 9  加()后就是函数的求值,所以f1()就相当于call g(1),返回值就是1,f2()就相当于call g(2),返回值就是4等

例子4

def count():
    fs = []
    for i in range(1,4):
        def f(j):
            return  j*j
        r = f(i)
        fs.append(r) #r是函数f()计算后的返回值,是Int型对象,fs是一个3个整数的list
    return fs
print count()    #输出[1, 4 , 9]

关于输出 1 4 9 的另一个方法,但没有用到闭包

def count():
    fs = []
    for i in range(1,4):
        fs.append(i*i)
    return fs
f1,f2,f3 = count()
print(f1,f2,f3)  #输出1 4 9
點(diǎn)擊查看更多內(nèi)容
4人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

舉報(bào)

0/150
提交
取消