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

python进阶

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

def performance(f):
def fn(x):
start = time.time()
r = f(x)
print "call " + f.__name__ + "time is :" + str(time.time() - start)
return fn

@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))

print factorial(10)
= =这还只是小玩意
一开始用for i in kw:
self.i = kw[i];发现真心不行,因为这个i是一个变量才可以,在js中可以通过self[i]这种中括号实现,但是在python中我试了还是不行,最好么有办法,用setattr实现了,真是囧囧囧!!!!!
注意,t是教师,教师是人,人是对象,所以t是人,t是对象
super(Student,self).__init__()调用父类的方法(这里是构造方法,其它方法是否使用super来调用,还未知)来初始化父类的属性
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
函数调用不用传入self,但是方法调用需要传入self
(1)、实例属性和类属性重名的时候,实例属性的优先级要高;
(2)、修改实例属性的时候,并不会修改类属性
class Person(object):
count=0;
def __init__(self,name):
Person.count=Person.count+1;

p1 = Person('Bob')
print Person.count

p2 = Person('Alice')
print Person.count

p3 = Person('Tim')
print Person.count;

Person.count = 'milliseconds';
print Person.count;
print p1.count;
因为类属性只有一份,所以,当Person类的address改变时,所有实例访问到的类属性都改变了。
因为sorted第二个参数是一个比较函数,所以就传递了一个cmp函数,cmp=lambda s1,s2:cmp(s1,upper(),s2.upper()),意思就是sorted的第二个参数定义的意思,自己百度
def __init__(self, name, score):
self.__name=name
self.__score=score
def get_grade(self):
if self.__score>=90:return "A"
elif self.__score>=60:return "B"
else:return "C"
p1 = Person('Bob', 90)
p2 = Person('Alice', 65)
p3 = Person('Tim', 48)
def performance_decorator(f):
def wrapper(*args,**kw):
print "call %s() is %s %s" % (f.__name__,time.time(),unit);
return f(*args,**kw);
return wrapper;
return performance_decorator;
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消