python 19

python 19

def funX():
    x=5
    def funY():
        nonlocal x
        x+=1
        return x
    return funY
a=funX()
print(a())
print(a())
print(a())
7
8
9

当a=funX()的时候,只要a变量没有被重新赋值,funX()就没有被释放,也就是说局部变量x就没有被重新初始化,
所以当全局变量不适用的时候,可以考虑使用闭包更稳定和安全

猜你喜欢

转载自blog.csdn.net/XJTU_Kris/article/details/89647852