11. Python高阶
本文最后更新于 2024-07-06,文章内容可能已经过时。
11. Python高阶
1. 闭包
在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。
nonlocal关键字:需要使用修饰外部函数的变量才可在内部函数中修改外部函数变量。
闭包注意事项:
优点:使用闭包可以让我们得到:
- 无需定义全局变量即可实现通过函数,持续的访问、修改某个值
- 闭包使用的变量的所用于在函数内,难以被错误的调用修改
缺点:由于内部函数持续引用外部函数的值,所以会导致这一部分内存空间不被释放,一直占用内存。
"""
演示Python的闭包特性
"""
# # 简单闭包
# # 使用nonlocal关键字修改外部函数的值
# def outer(num1):
# def inner(num2):
# nonlocal num1
# num1 += num2
# print(num1)
# return inner
#
# fn = outer(10)
# fn(10)
# fn(10)
# fn(10)
# fn(10)
# 使用闭包实现ATM小案例
def account_create(initial_amount=0):
def atm(num, deposit=True):
nonlocal initial_amount
if deposit:
initial_amount += num
print(f"存款:+{num}, 账户余额:{initial_amount}")
else:
initial_amount -= num
print(f"取款:-{num}, 账户余额:{initial_amount}")
return atm
atm = account_create()
atm(100)
atm(200)
atm(100, deposit=False)
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员Graypigeon
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果