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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
感觉这一节讲解的很垃圾啊
def __init__(self, name, gender, **kw):
for k in kw:
setattr(self,k,kw[k])
self.name=name
self.gender=gender
def format_name(s):
head = s[0:1].upper()
tail = s[1:].lower()
return '%s%s' % (head,tail)

print map(format_name, ['adam', 'LISA', 'barT'])
print(list(略...))
使用reduce函数要先从functools库中导入:from functools import reduce
闭包中闭包,厉害,r = f(i)这句话是在调用这个函数吧之前在循环中,根本没有掉用过函数,只是将函数作为参数传回,所以,才会错的吧
class Fib(object):
def __call__(self,num):
lists = [0,1]
for i in range(2,num):
lists.append(lists[i - 1] + lists[i - 2])
return lists

f = Fib()
print f(10)
def __float__(self):
return 1.0*self.p / self.q
def calc_prod(lst):
def aa(x,y):
return x*y

def a():
return reduce(aa,lst)
return a

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

print f()
之前函数返回得到的都是一个结果,数值

而调用要求函数返回的是一个函数,一个可以计算的公式
终于看懂意思了,
例子里面没有用闭包的时候count()=[f(),f(),f()],f()的值就是9,
用了闭包以后count()=[f(1),f(2),f(3)],
答案里面用r来接收f(i)反而不直观,写成fs.append(f(i))就非常清楚了
学习完毕打卡,会回来重新再刷一遍题目。
def count():
fs = []
for i in range(1, 4):
def f(i):
def j():
return i*i
return j
fs.append(f(i))
return fs

f1, f2, f3 = count()
print f1(), f2(), f3()
class Person(object):

def __init__(self, name, gender, **kw):
self.name = name
self.gender=gender
for key,value in kw.items():
setattr(self,key,value)

p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course
print "0"
print "1"
这样也能过。。
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消