岛木木
发表于 2017-2-11 17:30:11
20课后题有点难呀。。
ys2127435
发表于 2017-2-12 17:40:01
这个感觉并未体现出闭包非用不可啊,外面那个函数只是做了一个默认参数位置初始化的工作,完全也可以把这个参数写到移动函数里啊?
我想知道的就是闭包这种东西,什么时候非用不可,什么时候用特别棒。
就像你举例递归和迭代一样
谦虚求学
发表于 2017-2-16 16:22:08
闭包这种发放就像内嵌方法 不过不同的是函数里面套的函数(最里面的函数)它的返回值给于最外面函数(有点咬口{:5_91:})下来最后的返回值又给最里面的函数 (乱窜{:5_107:})
小小蜂王
发表于 2017-2-19 10:20:46
实践出真知
Inception41
发表于 2017-2-22 10:58:58
{:5_94:}
lumber2388779
发表于 2017-2-25 13:14:01
这种是否就是类似C++中的私有函数?
爱艾无止境
发表于 2017-2-27 20:28:16
如梦幻泡影 发表于 2014-1-11 16:46
:lol:JS非常喜欢写闭包
剑圣吗,为什么啊
yyy葉
发表于 2017-3-13 15:58:03
{:10_250:}太高深了
Miao0284
发表于 2017-3-17 07:05:49
diuren126 发表于 2015-3-3 18:09
origin = (0, 0)一直沒用上啊,,
这句忽悠人的,确实没用到。。。
olivepuyen
发表于 2017-4-6 03:22:27
例子太复杂了,不好理解。
hikaru2015
发表于 2017-4-10 13:00:35
我也写一下理解,有组总结:
这个函数主要是根据方向和步数两个参数,计算得到最新的方位。第一层def是确定远点坐标,第二层是确定方向和步数,做了闭包之后,第一层的数据就不用你输入了,直接输入第二层就好。闭包就好比模板。
打个比方,有一个服装设计函数,第一层是样式(通过各种参数变化成宽肩、收腰等各种服装样式),第二层的参数是颜色和尺寸,你通过第一层函数参数的修改,得出清凉装,时尚装,男装,女装等不同闭包,然后你只需要调用某个闭包再添加上颜色和尺寸,整个服装设计就完成了。
这样是不是比你一个个服装样式去敲代码更方便?
lclknight
发表于 2017-5-11 11:36:52
深度好文,good article
o384723503
发表于 2017-5-18 16:58:49
{:10_266:} 看的一头汗{:10_245:}
雪山一刀
发表于 2017-5-30 02:34:22
表示能基本看懂,但是要自己写的话有点难
酷学
发表于 2017-5-31 21:09:15
xiawb 发表于 2014-3-26 13:59
>>>
向右移动10步后,位置是: (10, 0)
向上移动130步后,位置是: (10, 70)
主要的目的是介绍闭包,如果是实际项目中的话肯定会对入参进行相应的限定以及添加相应的报错机制
酷学
发表于 2017-5-31 21:13:32
abecedarian 发表于 2014-8-7 00:36
不太懂,moving()用到外部函数creat()的参数,就是闭包?
闭包就是调用函数A传入自由变量,返回函数B。
酷学
发表于 2017-5-31 21:27:37
wonderwhy20 发表于 2015-4-13 00:29
为什么要用nonlocal啊
使用闭包后pos_x,pos_y两变量变成局部变量,外部传入的pos_x,pos_y与其指向的域不同,使用nonlocal表示使用外层(非全局)变量
酷学
发表于 2017-5-31 21:32:14
hip49669 发表于 2015-8-16 10:39
因为定义move函数的时候,第一个参数就是一个列表,函数里面用到了direction和direction,见11、12 ...
因为create函数默认了参数,所以这里省略了,也可以写成create(0, 0)(, 10)
酷学
发表于 2017-5-31 21:34:41
John_farmer 发表于 2015-8-28 11:42
第017讲课后作业动动手的最后一题,我写的程序,出现一个错误,求小甲鱼帮忙分析下错误原因
>>> def Decim ...
r = number % 2 这一步的时候,r未进行定义
酷学
发表于 2017-5-31 21:38:53
lzj222312 发表于 2015-10-22 09:03
你再了解下闭包的概念就明白了。。。。我也是刚开始不明白闭包是什么意思。。。后来又翻了一遍概念去看了 ...
闭包的作用:1、装饰器 2、惰性求值,一般在数据库访问时用的比较多 3、函数参数的提前赋值