为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • import time def performance(unit): def decorator(f): def wrapper(*args,**kw): t1=time.time() r=f(*args,**kw) t2=time.time() deltatime=t2-t1 if unit=='s': print 'call %s() in %f%s' % (f.__name__,deltatime,unit) elif unit=='ms': print 'call %s() in %f%s' % (f.__name__,deltatime*1000,unit) return r return wrapper return decorator @performance('ms') def factorial(n): return reduce(lambda x,y:x*y,range(1,n+1)) print factorial(10)
    查看全部
  • def performance(unit): def decorator(f): def wrapper(*args,**kw): if unit=='s': print 'call '+f.__name__+'() in',time.time(),'s' elif unit=='ms': print 'call '+f.__name__+'() in',time.time(),'ms' return f(*args,**kw) return wrapper return decorator
    查看全部
  • from functools import reduce def prod (x,y): return x*y print (reduce(prod,[2,4,5,7,12]))
    查看全部
  • prod 求积函数 return调用函数在Python3中不能用,要用from functools import reduce代替
    查看全部
  • 不是很懂
    查看全部
  • time.time()返回当前时间
    查看全部
  • sorted()列表在前,函数在后,函数返回值为-1,0,1.x在y前:返回-1;x在y后:返回1;x=y:返回0
    查看全部
  • map()接收一个函数f和一个list,并通过把f函数作用到列表每一个字符上,得到一个新的字符串 def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    查看全部
  • 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 我们把 Person 类变成一个可调用对象: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(self, friend): print 'My name is %s...' % self.name print 'My friend is %s...' % friend 现在可以对 Person 实例直接调用: >>> p = Person('Bob', 'male') >>> p('Tim') My name is Bob... My friend is Tim...
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-03-22

  • 因为Python支持高阶函数,在函数式编程中我们介绍了装饰器函数,可以用装饰器函数把 get/set 方法“装饰”成属性调用: class Student(object): def __init__(self, name, score): self.name = name self.__score = score @property def score(self): return self.__score @score.setter def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score 注意: 第一个score(self)是get方法,用@property装饰,第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品。 属性的set get方法
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 因为 Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。 有一个偷懒的定义__repr__的方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) __repr__ = __str__
    查看全部
  • 首先可以用 type() 函数获取变量的类型,它返回一个 Type 对象: >>> type(123) <type 'int'> 其次,可以用 dir() 函数获取变量的所有属性: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...]
    查看全部
  • ,__str__()用于显示给用户,而__repr__()用于显示给开发人员。 有一个偷懒的定义__repr__的方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) __repr__ = __str__
    查看全部
  • 所谓高级函数,既能够接收函数的函数 如:def add(x,y,f): return f(x)+f(y) add(-5,9,abs) abs(-5)=5
    查看全部
  • 如果一个属性由双下划线开头(__) 就是私有属性 例:__name
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

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