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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
闭包简单用用还是简单的,能运用自如很难的
Js里面一堆闭包
def calc_prod(lst):
def product():
a = 1
for x in lst:
a = a * x
return a
return product

f = calc_prod([1, 2, 3, 4])
print f()
def calc_prod(lst):
def ji(lst):
b=1
for a in lst:
b=b*a
return b
def lazy_sum():
return ji(lst)
return lazy_sum

f = calc_prod([1, 2, 3, 4])
print f()

已采纳回答 / jocoo
因为你的list--fs中存放的是值,不是函数,所以不能加()
看评论 学Python

已采纳回答 / yeyubuzailai
注意传入的是另一个实例,即r是一个实例,那么自然有r.q,r.p
自己把代码一行一行的看可以看懂,可是让我自己敲出来就。。。

已采纳回答 / Cherisher
当u1排在u2前面时,返回-1;当u1与u2并排时,返回0;当u1排在u2后面时,返回1.
看到这节时经验值1314,什么鬼,这辈子要嫁给代码了?话说python漂亮不漂亮...

最赞回答 / 熊xd
一个占位符,可以了理解为什么都不做。一般用于空的语句块,因为语句块不能为空,但你确实是在里面不写东西,python会出错,加个pass就没问题了。有很多例子:<...code...>这里创建了一个名为EnterError的Exception(所有错误的基类)的子类,但本身没用,那为什么还要创建呢?原因:<...code...>如果不是数,就会引发一个错误(raise就是引发错误),类型为我们自创的EnterError,说白了就是我们创建了一个名字响当当的错误。
from math import sqrt

最新回答 / wheeeat
<...code...>自己改好了。原来是因为 append() 里带的参数 L 没有用 self.L 引用。

最新回答 / CuiYS
在答案的体系下是不行的,因为它后面的代码要求它必须返回一个函数(f = calc_prod([1, 2, 3, 4])    print f()  。) 而第三个定义的函数只是用于计算乘积,为第二个函数所利用,而第一个函数返回第二个函数,所以可以把第二个函数看成一个传导介质。当然看起来很绕,这主要是编者用来给初学者联系而已,当然还有其他简洁的方法,比如匿名函数什么的
def __len__(self):
return len(self.names)
如果没有这一段 就报错 因为len只能作用于【】 而Students(&#039;Bob&#039;, &#039;Alice&#039;, &#039;Tim&#039;)并不是
--------------个人理解 经不起推敲

已采纳回答 / 程序猿和攻城狮
super(type, [object-or-type])  Return the superclass of type. If the second argument is omitted the super object  returned is unbound. If the second argument is an object, isinstance(obj, type)   must be true. If the second argument is a type, issubclass(...
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消