A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 自闭. 初级黑马   /  2018-11-30 20:18  /  2339 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        有点烦,手打帖子写的第二遍,第一遍写了一大半下课吃饭电脑被人给关了,蛋疼,结果看到这个网站有数据恢复还高兴了一下,然而恢复的是个啥?我开贴的缩进吗?蛋疼,我觉得需要优化。
        班主任让我来这里写个学习经历贴,正好前段时间学了装饰器,来这里就当回忆一下上课内容了,就是班主任不让打代码,有点蛋疼,随便看看吧。
        说到装饰器,我们先讲一下闭包。
        闭包有三个特点:1.嵌套定义一个内部函数;2.外部函数会返回内部函数的引用;3.内部函数会使用到外部函数的参数。
        讲完闭包的特点大家应该也能在自己脑袋里面想像出它的样子了,如何运用闭包呢,我们先设定一个变量等于闭包的外部函数,并传递一个参数给它,然后再向这个变量传递一个参数,此时运行的过程为先执行闭包的外部函数,执行外部函数的同时返回内部函数,并将传递给我们设置的变量的函数传递给内部函数执行,最后输出我们想要的结果。
        在我理解中,闭包的作用就是减少参数的传递,增加代码的可移植性。
        在我看来,装饰器就是建立在闭包上的语法糖,主要使用方式为@外部函数名下方接一个函数。下面说一下个人对于装饰器的理解,装饰器就是一个特殊的闭包,能够在不改变原有代码的情况下,扩展原有代码的功能。
        基础装饰器,相当于将之前闭包中传递的参数变为下方的函数,先执行外部函数,再执行内部函数,最后执行装饰器下方的函数。
        带参数的装饰器呢,就是在装饰器下方的函数中给出一个或多个参数,同基础装饰器的执行过程,不过装饰器下方的函数中的参数将会传递至装饰器的内部函数中。
        多重装饰,则是在装饰器下方再接一个或者多个装饰器,不过最后仍然需要接一个函数,在执行时,解释器读到第一个装饰器时,由于下方是一个装饰器而非函数传递至装饰器中,此装饰器会被暂停,解释器将继续往下,直至到达函数上方第一个装饰器才开始执行,所以多重装饰在执行的时候是最靠近下方函数的装饰器逐步往上执行,我个人理解的此时相当于层层嵌套,在逐步执行完所有装饰器的外部函数之后,才会开始执行内部函数,内部函数的执行顺序也是和基本装饰器一致,弄明白在这个过程中函数传递的过程,就很好理解了。
        类装饰器的话,emmmm....我感觉差不多五百字了吧,那就不写了,反正都是一个道理,弄明白传递的顺序就好了。
        个人的一些理解,也不知道有没有错误。希望有人能够指出错误。
        这个论坛都是僵尸啊,我估计也没人看,全当自己做总结了。

8 个回复

倒序浏览
仔细看看周围的人,始终有那么一些人,坚定地在向前走着,他们变成闪闪发光的存在,总觉得他们就像是神似的存在这世界上,可是我们不知道他们到底用了多少努力,才换来了这样的一个他们想要的人生。
回复 使用道具 举报
你有多努力,就有多特殊。人只有坚持把自己变好,就真的会越来越好。
回复 使用道具 举报
一个人幸运的前提,其实是他有能力改变自己。嗯,来到这里的我们都是幸运的吧?
回复 使用道具 举报
昨天是一张作废的支票,明天是一张期票,而今天则是唯一拥有的现金。加油
回复 使用道具 举报
今天很残酷 明天更残酷 后天很美好,坚持:5_229:}
回复 使用道具 举报
发光并非太阳的专利,你也可以发光。加油
回复 使用道具 举报
能坚持学习的人都是最棒的。
回复 使用道具 举报
除了恐惧和欲望,还有什么可以激励自己长期地努力?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马