闭包的特点就是 不执行内部定义的函数 而是等到要调用的时候再去执行。
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啊,为啥你们都会用?
学习了。
Sign in to make a reply
护苗2018
闭包的特点就是 不执行内部定义的函数 而是等到要调用的时候再去执行。
Code:
做些笔记: 1.内部函数一般无法修改外部函数的参数 2.想要修改需要声明 nonlocal 3.内部函数可以修改外部list中的元素 4.对于createCounter来说i是局部变量,对于counter来说i是非全局的外部变量。内部函数若想修改外部函数中的外部变量,可以用nonlocal声明。而如果只是使用外部函数的外部变量,是不会报错的。 5.简单来说的话如果只是调用的话不需要额外的做出声明,但是要修改的话就要另当别论了