python 、、、、、、、、、、

为什么是c[0]而不是c或者c[a]

#修改闭包变量的实例
# outer是外部函数 a和b都是外函数的临时变量
def outer( a ):
    b = 10  # a和b都是闭包变量
    c = [a] #这里对应修改闭包变量的方法2
    # inner是内函数
    def inner():
        #内函数中想修改闭包变量
        # 方法1 nonlocal关键字声明
        nonlocal  b
        b+=1
        # 方法二,把闭包变量修改成可变数据类型 比如列表
        c[0] += 1
        print(c[0])
        print(b)
    # 外函数的返回值是内函数的引用
    return inner

if __name__ == '__main__':

    demo = outer(5)
    demo() # 6  11

这方面的知识被称为什么,我去学一下

https://ask.csdn.net/questions/771470 https://ask.csdn.net/questions/771454 之前的问题采纳一下,谢谢

这个是闭包,如果你用google,可以搜索对应的英文 closure