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)