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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
简单,扼要
import time
def performance(unit):
def decorator(f):
def dec1(n):
print 'call %s() in %s %s' %(f.__name__,time.asctime(),unit)
return f(n)
return dec1

return decorator
class Fib(object):
__fib = [0,1]
def __init__(self):
pass
def __call__(self,num):
while len(Fib.__fib) < num:
Fib.__fib.append(sum(Fib.__fib[-2:]))
return str(Fib.__fib[0:num])
__fib = [0,1,1,2,3]
def __init__(self, num):
self.num = num
while len(Fib.__fib)<num:
Fib.__fib.append(sum(Fib.__fib[-2:]))

def __str__(self):
return str([Fib.__fib[i] for i in range(0, self.num)])

def __len__(self):
return self.num
functools is weird
@score.getter
def grade(self):
if self.score < 60:
return "C"
elif self.score > 80:
return "A"
else:
return "B"
class Fib(object):
lst = [0]
def __init__(self, num):
a,b = 0,1
while num-1:
a,b = b,a+b
self.lst.append(a)
num -= 1
print self.lst

def __len__(self):
return len(self.lst)

f = Fib(10)
print f
print len(f)
class Person(object):
def __init__(self, name, gender, birth, **kw):
self.name = name
self.gender = gender
self.birth = birth
for key, value in kw.items():
setattr(self,key,value)
...
def calc_prod(lst):
def chenji(x,y):
return x*y
def chen():
return reduce(chenji,lst)
return chen

f = calc_prod([1, 2, 3, 4])
print f() 哈哈哈哈 竟然让我写出来了
import math

def is_sqr(x):
return (math.sqrt(x)) in range(1,101)

print filter(is_sqr, range(1,101))

#我这个写法简直投机取巧...
高阶函数好复杂
发现不能在类的初始化函数中定义通过'self.attr'来控制类属性而应该用‘类名.attr’来操作类属性
很好,希望可以更新快点
self.name=name
self.gender=gender
for k,v in kw.iteritems():
setattr(self,k,v)
class Fib(object):
def __init__(self):
pass
def __call__(self, num):
f = [0, 1]
for i in range(num-2):
f.append(f[i] + f[i+1])
return f

f = Fib()
print f(10)
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消