闭包的问题

来源:11-16 再用闭包解决一下_

hihiluo

2018-03-08

这段代码里origin的作用?http://img.mukewang.com/szimg/5aa0cd810001f5aa03640370.jpg  这里origin的全局变量与pos这个环境变量没有冲突吗?他们能直接传参?f(2)里的step是怎么传进去的?能否把这个完全导开一下吗?就是不同F()这个传参

写回答

2回答

7七月

2018-03-08

origin和pos有什么 冲突,连名字都不一样呀。

0
2
7七月
回复
hihiluo
没有问题的,建议再把这几节再看看,闭包确实是属于高级概念,不太容易理解。
2018-03-08
共2条回复

八云君

2018-03-08

我的理解是,origin只是赋值给pos,即让pos=0,所以没有冲突,pos作为factory函数的参数,也是其factory本身的变量,f(2)的变量是传step=2,然后new_pos=0+2,由于nonlocal pos,所以pos不是go函数里面的变量而是factory的变量,所以pos=new_pos=2,其go函数的环境变量得到改变而被保存下来为下一次调用所用

0
1
hihiluo
那我直接写f=factory(0)能行吗?
2018-03-08
共1条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14446 学习 · 4438 问题

查看课程