最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python閉包執(zhí)行時(shí)值的傳遞方式實(shí)例分析

 更新時(shí)間:2018年06月04日 09:48:00   作者:有一種宿命叫無能為力  
這篇文章主要介紹了Python閉包執(zhí)行時(shí)值的傳遞方式,結(jié)合實(shí)例形式分析了Python閉包執(zhí)行時(shí)的傳值原理與實(shí)現(xiàn)方式,代碼中包含了較為詳盡的注釋便于理解,需要的朋友可以參考下

本文實(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)文章

最新評(píng)論

会宁县| 安图县| 虹口区| 太原市| 双流县| 商水县| 攀枝花市| 凤山市| 吉木乃县| 永寿县| 蕉岭县| 巧家县| 贡觉县| 临沧市| 荆州市| 宜阳县| 临城县| 大竹县| 静安区| 万源市| 白山市| 天等县| 郸城县| 元朗区| 望江县| 图们市| 灌阳县| 阿坝| 疏附县| 广昌县| 禄丰县| 巴林右旗| 綦江县| 贵州省| 三都| 林甸县| 台北县| 安图县| 上犹县| 通江县| 乌拉特后旗|