为了账号安全,请及时绑定邮箱和手机立即绑定

python装饰器

难度初级
时长43分
学习人数
综合评分9.67
219人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰

最新回答 / 磨牙在家里就不是
return func(*args)  理解分为2部,result=func(*args)和return result,这样一来,就使得闭包的返回值和原函数的返回值是一样的,如果你不关心返回值,怎么写都可以

最新回答 / KNATO
returun返回的是一个值,不是函数return in_func返回的是in_func(),f()接收的是return in_func返回的值其实就是return in_func返回到func(89),func(89)把返回的值给到f()  (可以这么理解吧

最新回答 / hehehehehehehehe
应该有打印的,只是老师没往下拖光标,你可以试试。

最新回答 / 东来往北
return返回的值 不是显式的 需要print 来输出

最赞回答 / 爱编程and爱逻辑
装饰器好比一个服装店,小明到里面买了一件新衣服穿上出来了,小红到里面也买个一件新衣服穿上出来了,虽然都是在同一个服装店买的衣服,但是不能说穿上新衣服的小明就是穿上新衣服的小红哦

最新回答 / 朱青1900
注意前面说的函数的属性问题,dec(my_sum)和dec(my_average)是不同的,传递的参数不同,此时函数的属性不同,相对于是一个封闭环境,my_sum会跟随内部函数,同理my_average也会跟随的,两次调用是不影响的。

最赞回答 / 大大的桂斌
.这样实现当然没有问题,但这显然不是一道算法题,只是举了一个例子在说函数闭包有这么一个功能作用,我觉得函数闭包的好处很大程度体现在装饰器当中。

最赞回答 / ty_hongjy
jud的参数不含普通变量,普通变量在里面的函数参数中提供,另外return的缩进关系不对

最新回答 / 慕粉3202573
in  dec 是内部函数,为后面的装饰器做铺垫,in dec 的返回值就给了dec

最赞回答 / HuffLeo
func(89)返回的是一个函数,并不是一个特定的值。只有用一个函数来接受 F= func(89)才可以,然后二次调用 F 函数才可以得到具体的数值

最赞回答 / 慕标9241536
调用dec函数时返回的是内部函数in_dec的函数地址(不带参数返回的就是函数地址),直接返回函数地址是为了这个函数的可重用性,以便下一个具有同样性质的函数(例如my_average)也可以进行相同的判断(先执行in_dec里面的判断,再调用my_sum()函数或者my_average( )函数进行计算)带了参数值就代表正式调用这个函数。它执行逻辑是 调用dec函数-->返回in_dec地址-->自身就是in_dec了-->执行in_dec里的判断并返回sum()函数对*arg的处理结果...

最新回答 / 慕粉2104286862
因为分数线不同,要编写不同的set_passline函数,但是各个set_passline()中用于判断是否及格的cmp()函数是一样的代码。用了闭包,也就是节省了编写比较函数cmp()的代码。也就是重用了cmp()比较函数的代码。至于你说的两个参数,是那么第二个参数传进来也要在比较时多写基于第二个参数的代码(在此琢磨一下),当n多个参数就写重复的n多次
首页上一页123下一页尾页
课程须知
您至少具备Python基础知识
老师告诉你能学到什么?
1.函数作用域及关系。 2.闭包的使用。 3.装饰器的概念及使用。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消