Python 官方文档:入门教程 => 点击学习
问题 : 模拟一个存钱罐有两个小朋友,小明,小唐。 年初,三位小朋友的妈妈给他们一定压岁钱。小明有100压岁钱,小唐有50。然后,每月他们不定期的将自己零花钱的一部分存起来。代码:python闭包##构造闭包def factory_save
有两个小朋友,小明,小唐。 年初,三位小朋友的妈妈给他们一定压岁钱。小明有100压岁钱,小唐有50。然后,每月他们不定期的将自己零花钱的一部分存起来。
##构造闭包def factory_save(base_money): def save(add_money=0): nonlocal base_money sum_money = base_money + add_money base_money = sum_money return sum_money return save##实例化(压岁钱不同以区别)xiaoming_save = factory_save(100)xiaotang_save = factory_save(50)#小明存钱##存钱xiaoming_save(20)##显示当前存款print(xiaoming_save())#小唐存钱##存钱xiaotang_save(5)##显示当前存款print(xiaotang_save())
闭包,就是一个函数,引用了函数外定义的变量,可以叫着自由变量或者环境变量。这里就是函数save,引用了外面定义的base_money变量。所以闭包,可以简单理解为一个函数+环境变量的封装。
外面的函数factory_save,就像一个生产存钱罐的工厂,能生产一个个模板(save),同时,在生产这个模板时,能够加入一些环境变量,如果颜色,材质等。这里简单用的用压岁钱的金额不同表示。
生产成的模板实例化后,就是一个个存钱罐,可以是小明的存钱罐,小唐的存钱罐。
这里需要注意是的,当环境变量带入模板函数后,这个变量的作用域就在这个函数,并且能够在内存中长存,也就起到了累加的作用。
--结束END--
本文标题: 一个简单实例,理解python闭包
本文链接: https://lsjlt.com/news/228142.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0