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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • lambda表示匿名函数
    查看全部
  • def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() 程序在执行f1, f2, f3 = count()语句时,只是返回了一个分别指向三个函数的list,即只定义了函数,并使得list成员分别指向这些函数且执行完后i=3。当程序执行最后一条print语句时,三个函数各执行一遍且这些函数执行时通过闭包特性获取外层变量i值(此时i=3),所以最后输出全为9。 问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可:附完整程序如下: def count(): fs = [] for i in range(1, 4): def f(m = i): return m*m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2016-02-10

  • map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数: def f(x): return x*x print map(f, [1, 2, 3]) 输出:[1,4,9] 注意:map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含值 的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
    查看全部
  • 判断整数: r = int(math.sqrt(x)) r*r == x? // math.sqrt(x)%1 == 0?
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 在闭包中内部函数不可直接引用局部变量,容易引起歧义。可在内部方法中调用函数。
    查看全部
  • h
    查看全部
  • 注意习题可以用reduce函数
    查看全部
  • 返回函数以我现在的编程经验还不知道其实际中的应用是怎么样的,但是预感以前很多我没有解决好的问题都可以用这种方法解决
    查看全部
  • Python内置的functools可以用来自动化完成这个“复制”的任务: import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 最后需要指出,由于我们把原函数签名改成了(*args, **kw),因此,无法获得原函数的原始参数信息。
    查看全部
  • 对于参数不是一个的函数,调用将报错:
    查看全部
  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-02-06

  • 描述 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
    查看全部
  • review when finish
    查看全部

举报

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

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