采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这段代码里origin的作用? 这里origin的全局变量与pos这个环境变量没有冲突吗?他们能直接传参?f(2)里的step是怎么传进去的?能否把这个完全导开一下吗?就是不同F()这个传参
origin和pos有什么 冲突,连名字都不一样呀。
但是一个是全局变量 传参 然后再在包里变成POS这个环境变量 我这有理解有问题吗? 这样传会有问题吗?
没有问题的,建议再把这几节再看看,闭包确实是属于高级概念,不太容易理解。
我的理解是,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函数的环境变量得到改变而被保存下来为下一次调用所用
那我直接写f=factory(0)能行吗?
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
5.5k 7
2.5k 3
2.1k 4
4.1k 22
2.3k 19