Discuss / Python / 唔 想法还是很不成熟

唔 想法还是很不成熟

Topic source

护苗2018

#1 Created at ... [Delete] [Delete and Lock User]

闭包的特点就是 不执行内部定义的函数 而是等到要调用的时候再去执行。

Code:

def createCounter():
    i=0
    def counter():
        nonlocal i
        i +=1
        return i
    return counter

做些笔记: 1.内部函数一般无法修改外部函数的参数 2.想要修改需要声明 nonlocal 3.内部函数可以修改外部list中的元素 4.对于createCounter来说i是局部变量,对于counter来说i是非全局的外部变量。内部函数若想修改外部函数中的外部变量,可以用nonlocal声明。而如果只是使用外部函数的外部变量,是不会报错的。 5.简单来说的话如果只是调用的话不需要额外的做出声明,但是要修改的话就要另当别论了

上面的教程没说什么nonlocal、global啊,为啥你们都会用?

学习了。


  • 1

Reply