Python閉包執(zhí)行時(shí)值的傳遞方式實(shí)例分析
本文實(shí)例分析了Python閉包執(zhí)行時(shí)值的傳遞方式。分享給大家供大家參考,具體如下:
代碼中有問題和問題的解釋。
#!/usr/bin/python
#coding: utf-8
# 判斷一個(gè)人是否及格,如果滿分150,則90及格,如果滿分100,則60及格
# 開始的疑惑:當(dāng)fun函數(shù)執(zhí)行完以后,對(duì)應(yīng)的val的值就應(yīng)該消失,但是,
# 當(dāng)下面代碼再次調(diào)用f(60)的時(shí)候(這個(gè)f()函數(shù)就是fun_c()函數(shù))
# 卻能夠打印出val的值???
def fun(val):
'val是得到的分?jǐn)?shù)'
# 打印此時(shí)存儲(chǔ)的val的地址
print("%x" % id(val))
def fun_c(passline):
'passline是及格線'
if val >= passline:
print("通過")
else:
print("不及格")
return fun_c
f = fun(89) # f就是fun_c函數(shù)
# 利用__closure__打印出fun_c()函數(shù)的屬性,可以發(fā)現(xiàn)f中第一個(gè)元素的id值和val的id值地址相同
# 這說明如果引用了外部的變量(enclosing變量)的話,會(huì)將這個(gè)變量添加到函數(shù)屬性中
# 當(dāng)再次進(jìn)行查找(即f(60))的時(shí)候,并不是到代碼中去查找,而是到函數(shù)屬性中去查找
# 也就是上面的fun_c的屬性中有val的值,是一個(gè)元組,不能夠改變
print(f.__closure__)
f(60)
f = fun(89)
f(90)
運(yùn)行結(jié)果:
12ee0b0
(<cell at 0x017B24B0: int object at 0x012EE0B0>,)
通過
12ee0b0
不及格
閉包的作用:
1. 代碼的封裝
2. 代碼復(fù)用
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python NumPy創(chuàng)建數(shù)組方法
這篇文章主要介紹了Python NumPy創(chuàng)建數(shù)組方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
Django中反向生成models.py的實(shí)例講解
今天小編就為大家分享一篇Django中反向生成models.py的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python實(shí)現(xiàn)在Word中創(chuàng)建表格并填入數(shù)據(jù)與圖片
在Word中,表格是一個(gè)強(qiáng)大的工具,本文主要為大家介紹了如何使用Python在Word中創(chuàng)建表格并填入數(shù)據(jù)、圖片,以及設(shè)置表格樣式等,感興趣的可以了解下2024-03-03
使用Python的urllib和urllib2模塊制作爬蟲的實(shí)例教程
這篇文章主要介紹了使用Python的urllib和urllib2模塊制作爬蟲的實(shí)例教程,展現(xiàn)了這兩個(gè)常用爬蟲制作模塊的基本用法,極度推薦!需要的朋友可以參考下2016-01-01
利用Python實(shí)現(xiàn)自動(dòng)生成圖文并茂的數(shù)據(jù)分析
這篇文章主要介紹了利用Python實(shí)現(xiàn)自動(dòng)生成圖文并茂的數(shù)據(jù)分析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
python定時(shí)采集攝像頭圖像上傳ftp服務(wù)器功能實(shí)現(xiàn)
本文程序?qū)崿F(xiàn)python定時(shí)采集攝像頭圖像上傳ftp服務(wù)器功能,大家參考使用吧2013-12-12

