nonlocal关键字
闭包的优点:
– 无需定义全局变量即可实现通过函数,持续的访问、修改某个值
– 闭包使用的变量的所用于在函数内,难以被错误的调用修改闭包的缺点:
Admin_Log
– 由于内部函数持续引用外部函数的值,所以会导致这一部分内存空间不被释放,一直占用内存
"""
闭包的优点:
- 无需定义全局变量即可实现通过函数,持续的访问、、修改某个值
- 闭包使用的变量的所用于在函数内,难以被错误的调用修改
闭包的缺点:
- 由于内部函数持续引用外部函数的值,所以会导致这一部分内存空间不被释放,一直占用内存
"""
# 使用闭包实现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)



