国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python函數中的函數(閉包)用法實例

2019-11-25 16:52:52
字體:
來源:轉載
供稿:網友

本文實例講述了Python閉包的用法。分享給大家供大家參考,具體如下:

Python函數中也可以定義函數,也就是閉包。跟js中的閉包概念其實差不多,舉個Python中閉包的例子。

def make_adder(addend): def adder(augend):  return augend + addend return adderp = make_adder(23)q = make_adder(44)print(p(100))print(q(100))

運行結果是:123和144.

為什么?Python中一切皆對象,執行p(100),其中p是make_adder(23)這個對象,也就是addend這個參數是23,你又傳入了一個100,也就是augend參數是100,兩者相加123并返回。

有沒有發現make_adder這個函數,里面定義了一個閉包函數,但是make_adder返回的return卻是里面的這個閉包函數名,這就是閉包函數的特征。

再看一個Python閉包的例子:

def hellocounter (name): count=[0] def counter():  count[0]+=1  print('Hello,',name,',',count[0],' access!') return counterhello = hellocounter('ma6174')hello()hello()hello()

運行結果:

tantengdeMacBook-Pro:learn-python tanteng$ python3 closure.py Hello, ma6174 , 1 access!Hello, ma6174 , 2 access!Hello, ma6174 , 3 access!

使用閉包實現了計數器的功能,這也是閉包的一個特點,返回的值保存在了內存中,所以可以實現計數功能。

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜昌市| 延川县| 马鞍山市| 彭山县| 凤阳县| 韶山市| 安吉县| 色达县| 团风县| 陇西县| 象山县| 洪湖市| 宿州市| 万安县| 平安县| 义乌市| 宽城| 彰化市| 卓尼县| 景德镇市| 江川县| 江永县| 拉孜县| 洛扎县| 穆棱市| 钦州市| 巴马| 河北区| 桂平市| 新蔡县| 名山县| 锡林郭勒盟| 大渡口区| 阜南县| 延庆县| 沂源县| 双江| 锡林郭勒盟| 思茅市| 新宁县| 阳朔县|