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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰

最赞回答 / JS000
简单点说就是当一个函数(如def my_func():    pass)前面加了@函数名(如@log),然后log函数就被赋值给my_func函数本身,并且my_func作为参数传入log函数,也就是my_func = log(my_func)。然后用前面高阶函数的知识去理解就行了。有参数装饰器就是多了一个函数而已,层层剖析下就行了

最赞回答 / 痕六
<...code...>参数是一个对象,一个字符串和一个任意值。字符串可能会列出一个现有的属性或一个新的属性。这个函数将值赋给属性的。并将属性提供给对象。在  xiaoming = Person('Xiao Ming', 'Male',...

最赞回答 / JS000
可以的,但是前面代码要改一下:def count():    fs = []    for i in range(1, 4):        def f(j):            return j*j        r = f(i)        fs.append(r)    return fs这样最后你输入print f1,结果就是[1,4,9]用f1,f2,f3= count()是因为用了闭包,f1(),f2(),f3()其实就是分别当j为1,2,3时的g()

最新回答 / JS000
f1,f2, f3其实就是个变量名字,你用fa,fb,fc代替答案还是1*1,2*2,3*3,并没有必然联系

最赞回答 / JS000
你定义的log是接受函数的,但是你又让它接收'DEBUG'这种字符串,是要怎样啊!

最赞回答 / DanDanHang
<...code...>在终端自己试一下,就可以回答你的疑问,cmp(x,y)的确是内置函数builtin里头的,x,y可以是字符串和整数

最赞回答 / Apalapucia
没有为什么啊,myabs的作用就是返回一个abs函数。你这问题就像是问print "Hello World! " 为什么是 "Hello World!" 一样。。。
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消