Python高阶技巧1 -- 闭包

闭包的目的是为了防止全局变量随意被篡改!

内部函数叫做闭包函数,整个函数的返回值是内部函数!

内部变量依赖于外部变量!

不定义全局变量,也可以让函数持续访问和修改一个外部变量!

闭包函数引用的外部变量,是外层函数的内部变量。作用域封闭难以被误操作修改!

 

ATM机小案例:

def user(init_count=0):
    print(f"当前账户余额{init_count}元")
    def atm(num, save=True):
        nonlocal init_count
        if save:
            init_count += num
            print(f"存款{num}元, 账户余额{init_count}元")
        else:
            init_count -= num
            print(f"取款{num}元, 账户余额{init_count}元")
    return atm

xm = user(1000)
xm(1000)
xm(500, save=False)

 

posted @ 2023-07-31 23:10  Peg_Wu  阅读(3)  评论(0编辑  收藏  举报