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

python装饰器

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

已采纳回答 / 一只_废喵
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。当你在编写一个程序时,执行语句部分思路还没有完成,这时你可以用pass语句来占位,也可以当做是一个标记

最新回答 / 慕粉2104286862
因为分数线不同,要编写不同的set_passline函数,但是各个set_passline()中用于判断是否及格的cmp()函数是一样的代码。用了闭包,也就是节省了编写比较函数cmp()的代码。也就是重用了cmp()比较函数的代码。至于你说的两个参数,是那么第二个参数传进来也要在比较时多写基于第二个参数的代码(在此琢磨一下),当n多个参数就写重复的n多次

最新回答 / 问风为何肆意
需要在python的主函数里面调用函数打印即可,不再一个py程序要from 包名.py名 import 函数名即可

最新回答 / 高山之蓝
你说的是应该是外部函数my_sum作为一个变量写入in_dec函数成为它的属性。每次调用都会先按程序顺序进行判断,到return才是调用外部求和函数,而这个外部函数已经存在in_dec中,会直接取用外部函数的。每次调用的外部函数是不变的(作为元组写在函数里面)-。-

已采纳回答 / 极限开水
return(arg)返回的单个参数return(*arg)表示返回任意多个无名参数,返回类型为tuple

最赞回答 / abbby
是的,执行 "func_100=set_passline(60)"的时候, 把60赋给set_passline函数的变量passline,在且内部函数cmp引用了外部变量passline,此时cmp.__closure__加上了passline变量的地址。执行完set_passline将cmp函数的地址赋给func_100, 所以func_100实际上就是内部函数cmp

最新回答 / 慕娘3990856
SublimeCodeIntel 可以支持代码的自动补全以及成员/方法提示等功能。 可以自行搜一下,更全面点。

最新回答 / huohuohuo123
print 格式化输出,如:print ("His name is %s"%("Aviad"))      输出结果:His name is  Aviad

最新回答 / 波阿斯
val值存放到cmp的函数属性中,再次调用的时候直接查找cmp的__closure__就可以

最新回答 / 一身喧哗
max()函数是Python的自定义函数,可以直接使用的,当使用的变量在局部、全局、还有enclosing域都找不到时,就去最远的模块里找了

最新回答 / 慕移动9181930
怎么理解啊,新手sqdjfjaikncgmgokqetixgqaqpxbvzpprxnlpeymghycqiubevrqrzdurqmomj

最赞回答 / haoming
python解释器在解引用一个变量时遵循所谓‘legb’原则。 即,首先在local即局部作用域中查找变量声明和值,如果没有找到,在函数的__closure__属性中查找变量(只有闭包函数要考虑)即enclosing,如果还没有找到则在全局作用域中查找变量即global,如果还是没有找到则在built-in的变量中查找,也就是python的关键字和默认的全局函数(e.g. list tuple open print)

最新回答 / 慕仔5709288
装饰器存在的目的是为本来要进行的函数(sum,average)进行包装,包装的意思一方面是多进行一些操作,另一方面是对一些函数具有想同逻辑的进行抽象,如果没有return操作,那就是包装袋里没有实物,就失去了本来的意义
课程须知
您至少具备Python基础知识
老师告诉你能学到什么?
1.函数作用域及关系。 2.闭包的使用。 3.装饰器的概念及使用。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消