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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 包下面必须要有_init_.py的文件,每层都必须有
    查看全部
  • i相对于内部函数是全局变量?改成局部变量
    查看全部
    0 采集 收起 来源:python中闭包

    2017-04-13

  • f1, f2, f3 = count()这句的意思是将count()中也就是list集合fs[f(),f(),f()]中的三个值分别赋值给f1,f2,f3.而不是调用count函数三次
    查看全部
    0 采集 收起 来源:python中闭包

    2017-04-13

  • 开方 math.sqrt a**(0.5) power(a,0.5)
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-04-13

  • 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 def calc_prod(lst): def lazy_prod(): def f(x, y): return x * y return reduce(f, lst, 1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • 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() 问题的产生是因为函数只在执行时才去获取外层参数i,刚开始count()中的fs只是存了三个f函数的引用;
    查看全部
    0 采集 收起 来源:python中闭包

    2017-04-13

  • 求最大公约数gcd(a,b)
    查看全部
  • 这3个函数所引用的变量 i 的值已经变成了3。由于f1、f2、f3并没有被调用,所以,此时他们并未计算 i*i,当 f1 被调用时: >>> f1() 9 # 因为f1现在才计算i*i,但现在i的值已经变为3 因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。 s.append(f),只是将每一个f()的引用保存进了list,并没有进行对于i的计算,所以导致最后在运行了f()之后,i已经变为了3,所以会一样结果都为9.只要将这里改为fs.append(f()),最后直接输出count()或f1即可(注意!不能输出f1()或count()()),这样就在这一步的时候已经进行了i*i的运算,将结果保存了,通过这一题可以注意到在python这门语言之中,f与f()的大区别
    查看全部
    1 采集 收起 来源:python中闭包

    2018-03-22

  • import time def performance(unit): print 'call1' def decorator(f): print 'call2' def fn(*args,**kw): print 'call3' t1 = time.time() r = f(*args,**kw) print 'call4' 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 fn return decorator @performance('ms') def factorial(n): print 'call5' return reduce(lambda x,y: x*y, range(1, n+1)) print 'call6' print factorial(10) 输出: call1 call2 call6 call3 call5 call4 call factorial() in 5.627155 ms 3628800
    查看全部
  • pow 乘幂
    查看全部
  • def cmp_ignore_case(s1, s2): return cmp(s1.lower(), s2.lower()) cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-04-13

举报

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

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