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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • reduce函数: 1、reduce()传入的函数f必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 2、reduce()还可以接收第三个可选参数,作为计算的初始值。
    查看全部
  • map函数:接收一个函数f和一个list,并通过把函数f一次作用在list 的每个元素上,得到一个新的list并返回
    查看全部
  • 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。例如: >>> add(-5, 6, abs) 11
    查看全部
  • dfdfd
    查看全部
  • def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 第二行是调用父类的init方法
    查看全部
  • 返回函数:return 函数名 (延迟计算) 返回数值:return 函数名(参数)
    查看全部
  • sorted()函数: sorted()是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • reduce函数配合接收的参数,函数f,一个是list。可以在函数f中写return x+y 意思就是返回list中所有的元素相加的值,也可以在函数f中写return x*y 表示将list中每个元素相乘 返回相乘后的值,即a*b*c*d....
    查看全部
  • 关于 _xxx 和 __xxx 的解释不太全面。 一般来讲,2个的区别是: _xxx 可以在子类中使用。 __xxx 不可以在子类中使用
    查看全部
  • 1、高阶函数filter: 根据判断结果自动过滤掉不符合条件的元素,返回结果为真的则组成一个新的list 2、s.strip(rm) :删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
    查看全部
  • 高阶函数reduce: def 函数名(x,y) return x?y print reduce(函数名,list)
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn 现在,对于任意函数,@log 都能正常工作。
    查看全部
  • 通过对比可以看出,匿名函数 lambda x: x * x 实际上就是: def f(x): return x * x 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码: >>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) [9, 5, 3, 1, 0] 返回函数的时候,也可以返回匿名函数
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下: # 希望一次返回3个函数,分别计算1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 你可能认为调用f1(),f2()和f3()结果应该是1,4,9,但实际结果全部都是 9(请自己动手验证)。 原因就是当count()函数返回了3个函数时,这3个函数所引用的变量 i 的值已经变成了3。由于f1、f2、f3并没有被调用,所以,此时他们并未计算 i*i,当 f1 被调用时: >>> f1() 9 # 因为f1现在才计算i*i,但现在i的值已经变为3 因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-22

  • 返回函数可以把一些计算延迟执行 调用calc_prod()并没有计算出结果,而是返回函数f = calc_prod([1, 2, 3, 4]) 对返回的函数进行调用时,才计算出结果:print f() 跟js很像
    查看全部

举报

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

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