[Python]初学闭包

← 返回文章流

[Python]初学闭包

# 优点 无需定义全局变量即可实现通过函数,持续的访问、修改某个值 闭包使用的变量的所用于在函数内,难以被错误的调用修改 由于内部函数持续引用外部函数的值,所以会导致这一部分内存空间不被释放,一直占用内存 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 def ATM(balance): def change (num,type=True) -> int : nonlocal balance # 使用nonlocal关键字修改外部函数的值 if type == True: # 存钱 balance += num print(f"<存款>{num}元,当前余额:{balance}") else: # 取钱 balance -= num print(f"<取款>{num}元,当前余额:{balance}") return balance # 返回修改后的余额 return change atm = ATM(100) atm(10) atm(10,1) for x in range(1,10): atm(x) for x in range(10,20): atm(x,False) res:int = atm(200) print(res) <存款>10元,当前余额:110 <存款>10元,当前余额:120 <存款>1元,当前余额:121 <存款>2元,当前余额:123 <存款>3元,当前余额:126 <存款>4元,当前余额:130 <存款>5元,当前余额:135 <存款>6元,当前余额:141 <存款>7元,当前余额:148 <存款>8元,当前余额:156 <存款>9元,当前余额:165 <取款>10元,当前余额:155 <取款>11元,当前余额:144 <取款>12元,当前余额:132 <取款>13元,当前余额:119 <取款>14元,当前余额:105 <取款>15元,当前余额:90 <取款>16元,当前余额:74 <取款>17元,当前余额:57 <取款>18元,当前余额:39 <取款>19元,当前余额:20 <存款>200元,当前余额:220 220

来自 初然忆作者主页
在原博客阅读全文 (新标签页打开)

以上内容来自博客订阅源,版权归原作者。热度统计站内详情页访问。

一起聊聊 0

尊重不同观点

还没有评论。欢迎分享第一个想法。