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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 高阶函数:能接收函数作为参数的函数。
    查看全部
  • abs = len abs(-3)则出错,因为abs指向的是len函数了。abs([1,2,4])则返回3
    查看全部
  • 变量可以指向函数。f=abs 函数名其实就是指向函数的变量。
    查看全部
  • 可见,千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • 这会导致创建失败或运行不正常,因为第一个参数name被Python解释器传入了实例的引用,从而导致整个方法的调用参数位置全部没有对上。
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码: >>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) [9, 5, 3, 1, 0] 返回函数的时候,也可以返回匿名函数: >>> myabs = lambda x: -x if x < 0 else x >>> myabs(-1) 1 >>> myabs(1) 1
    查看全部
  • 匿名函数 >>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81] 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 内层函数引用了外层函数的变量,然后返回内层函数的状况被称为闭包
    查看全部
    0 采集 收起 来源:python中闭包

    2016-06-08

  • 高阶函数:能接收函数做参数的函数
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下: 任务 返回闭包不能引用循环变量,请改写count()函数,让它正确返回能计算1x1、2x2、3x3的函数。 def count(): fs = [] for i in range(1, 4): def ff1(j): def layz(): return j*j return layz r=ff1(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2016-06-08

  • 返回函数 def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum # 调用calc_sum()并没有计算出结果,而是返回函数: >>> f = calc_sum([1, 2, 3, 4]) >>> f 任务 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 def ff(x,y): return x*y def calc_prod(lst): def layz(): return reduce(ff,lst) return layz f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • 自定义排序函数 Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序: >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5] sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较: >>> sorted(['bob', 'about', 'Zoo', 'Credit']) ['Credit', 'Zoo', 'about', 'bob'] 'Zoo'排在'about'之前是因为'Z'的ASCII码比'a'小。
    查看全部
  • 把函数作为参数 import math def add(x, y, f): return f(x) + f(y) print add(25, 9, math.sqrt)
    查看全部
  • 使用‘from’方式可以直接引用函数,不需要添加模块路径,但模块中的其他函数没有导入进来:
    查看全部
  • 注意os.path模块可以以若干种方式导入: import os import os.path from os import path from os.path import isdir, isfile
    查看全部

举报

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

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