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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • map(): 接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并返回
    查看全部
  • sorted()函数,传入两个待比较的元素x,y, 如果x应该排在y的前面,返回-1,如果x应该排在y的后面, 返回1, 如果x和y相等,返回0
    查看全部
  • 变量可以指向函数 函数的参数可以接收变量 一个函数可以接收另一个函数作为参数 能接收函数作参数的函数就是高阶函数
    查看全部
  • name = ['a','C','d','R','e'] def sort(x,y): if x.upper() > y.upper(): return -1 if x.upper() < y.upper(): return 1 return 0 h = sorted(name,sort) print h
    查看全部
  • import math def fun(x): r = math.sqrt(x) return r*r == x list = range(1,101) print filter(fun,list)
    查看全部
  • def fun(x,y): return x*y list = [1,2,3,4,5] print reduce(fun,list) def funs(x,y): return x+y print reduce(funs,list) 结果 120 和 15
    查看全部
  • import functools sorted_ignore_case = functools.partial(sorted,cmp=lambda s1,s2:cmp(s1.upper(),s2.upper())) print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-01-12

  • 可见,由于decorator返回的新函数函数名已经不是'f2',而是@log内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中: def log(f): def wrapper(*args, **kw): print 'call...' return f(*args, **kw) wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__ return wrapper
    查看全部
  • import time def performance(unit): def perf_decorate(f): def wrapper(*agrs,**kw): t1=time.time() r=f(*agrs,**kw) t2=time.time() t=(t2-t1)*1000 if unit=='ms' else (t2-t1) print 'call %s() in %f %s' % (f.__name__, t, unit) return r return wrapper return perf_decorate @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • getattr(instans,key,[default]),判断事例中是否有key属性,若没有返回默认值default setattr(instans, key, value) # 设置key属性新值value
    查看全部
  • 要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn 这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
    查看全部
  • 多种继承使用super(),保证父类只调用一次。 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。
    查看全部
  • 重载不是多态,覆盖(晚绑定)才是多态。
    查看全部
    0 采集 收起 来源:python中多态

    2018-01-12

  • 在继承链上,一个父类的实例不能是子类类型;一个实例可以看成它本身的类型,也可以看成它父类的类型。
    查看全部
  • 普通继承和super继承: 普通继承:Class.__init__(self, name, gender),实际是非绑定的。大量继承,如果遇到基类变动,则需要修改大量的代码。引入super继承。 super继承:super(SUBClass,self).__init__(),super(B, self)首先找到B的父类(就是类A),然后把类B的对象self转换为类A的对象,然后“被转换”的类A对象调用自己的__init__函数。super机制里可以保证公共父类仅被执行一次,至于执行的顺序,是按照mro进行的 https://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html
    查看全部

举报

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

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