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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
pip install web.py
pypi.python..org 可以找模块
decorator 传的参数('ms')就要用到闭包的功能,将参数生存周期改变一下.

已采纳回答 / 慕数据0495159
<...code...>执行结果:<...code...>如果你细心,你会发现,最后一个self.name打印的结果是None,其实,__call__方法就是重写了“()”运算符,让返回的内容,具有了函数执行的能力,这个和原先的类没有关系。
为什么用3层嵌套?因为python奇怪的参数生存范围?
&#039;@&#039;后面加的是decorator的名字

要改什么函数,就在那个函数的代码上加一行: @decorator
def calc_prod(lst):
def lazy_sum():
return reduce((lambda x,y: x*y),lst)
return lazy_sum

f = calc_prod([1, 2, 3, 4])
print f()
ambda是一个匿名函数,x,y是他的参数,x*y是他的返回值,按着你下面那么写的话,函数只使用以此所以用匿名函数可以节省内存中定义变量的空间,而且能是程序更简洁
reduce是横向逐个元素进行运算
【错误的说法】一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
在python中继承中的一些特点:
2.在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
所以:Person.__init__(self,name, gender)的写法是合理的

最新回答 / 柏舟0
args相当于列表,赋值给了names,然后self.names就是一个列表啊,直接len函数求长度
import math

def add(x, y, f):
return f(x) + f(y)

print add(25, 9, math.sqrt)
if self.score&lt;s.score:
return 1
if self.score&gt;s.score:
return -1
if self.score==s.score:
return cmp(self.name,s.name)
为了避免用到循环变量,又嵌套了一个函数...
注意def 和 return的缩进
结合律吗??
头昏,,,一会再来看
要不是有其他语言基础,我还真的看不懂“@property”是干嘛的
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消