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

python进阶

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

最新回答 / 昵称叫啥都行
应该Python设计的和其他不一样呗,xxx处是一个固定的,return 的是  a.__cmp__(b)

最赞回答 / xdfcc
这个你这样理解,先从理论上其实就是通过一个装饰器把一个函数变成另外一个函数!也就是例子上的通过def performance(f)把factorial(n)函数变成了fn函数,最后执行的也是fn函数,那么fn函数做了什么呢,看装饰器里定义的fn函数就知道,fn其实就是第一通过print输出了一个字符串,第二返回一个r函数,而r函数在fn里也定义了r=f(*args, **kw),也就是调用传进去的f函数其实就是调用factorial(n),你可以自己结合运行程序来理解

最新回答 / lc云泽
print 调用的是__str__方法,应该从__str__函数中找返回值;而return len()是__len__方法的返回值,所以需要在外部调用__len__才可以

最赞回答 / 乔帮主
http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html 这里面有你需要的答案

最赞回答 / 叶重楼
装饰器使用@是一个语法糖,是f=log(f)的简写,而且这个语法只能使用在函数定义处。如果你想在系统函数上使用装饰器,可以直接写<...code...> 你可以看看我的验证:<...code...>

最赞回答 / flyeek
*args 实际上处理为tuple参考如下代码:class Person(object):    def __init__(*args, **kw):        print isinstance(args, tuple)        args[0].name = args[1]        args[0].gender = args[2]        for k, v in kw.iteritems():            setattr(args[0], k, v)p = Person('...

最赞回答 / 1984的橘子和柠檬_0
把函数名看成一个指针变量会好理解一些。。fs.append(f)实际上是把f这个指针变量添到了fs列表里,并没有真的调用f函数,然后一直循环到i=3。f1= count()是把f指针变量赋给f1。。当执行到print f1()时,f1指向函数f,这个时候才调用了f函数,但是这时i等于3了。f只是一个变量,f()才是调用了函数

最赞回答 / 小明在努力
count()函数返回的是一个list 里面有三个值f1, f2, f3 = count()的意思是将list的三个值分别赋值给f1 f2 f3如果改变了list元素的个数 再运行f1, f2, f3 = count()时不行的 可以试下

最赞回答 / Breaker_CHN
分别解答你的两个问.并未对j赋值, j的值是如何获得的?考察函数定义:<...code...>上面就是j赋值问题的解析.另外一问, f1, f2, f3 = count() 调用方式的理解?首先, 考察count()的返回值: fs列表fs列表存...

最赞回答 / 睡着了的貓貓
自问自答:self.name = name 是初始化实例属性,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上name属性.可以不用添加,但是在该def中后面使用的时候,就都要加self.name了。self.name指的是实例属性。
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消