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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • def log(f):
        def fn(x):
            print 'call ' + f.__name__ + '()...'
            return f(x)
        return fn


    查看全部
  • 变量名可以指向函数

    查看全部
  • @Property 装饰器
    查看全部
    0 采集 收起 来源:python中 @property

    2018-12-29

  • 用python学习手册中的一段话来回答这个问题非常好“lambda有起到速写函数的作用,允许在使用的代码内嵌入一个函数的定义。在仅需要嵌入一小段可执行代码的情况 下,就可以带来更简洁的代码结构。”

    查看全部
  • def count():
        fs = []
        for i in range(1, 4):
            def f(j):
                def g():
                    return j*j
                return g
            r=f(i)
            fs.append(r)
        return fs

    f1, f2, f3 = count()
    print f1(), f2(), f3()


    在count函数的循环内部,如果借助f函数,就可以避免引用循环变量i。


    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-28

  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)

    闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变

    只有调用函数时才会去计算函数内部的结果


    返回函数不要引用任何循环变量,或者后续会发生变化的变量。


    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-28

  • 如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

    函数中的返回值必须是-1,1,0 不能是true和false

    def reversed_cmp(x, y):
        if x > y:
            return -1
        if x < y:
            return 1
        return 0

    sorted([36, 5, 12, 9, 21], reversed_cmp)
    [36, 21, 12, 9, 5]



    查看全部
  • def is_odd(x):
        return x % 2 == 1

    filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

    filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

    查看全部
  • def f(x, y):
        return x + y

    调用 reduce(f, [1, 3, 5, 7, 9])时,得到累乘

    reduce()还可以接收第3个可选参数,作为计算的初始值。

    查看全部
  • import math

    def is_sqr(x):
        r=int(math.sqrt(x))
        return r*r==x

    print filter(is_sqr, range(1, 101))

     判断平方根是否是整数

    查看全部
  • self.__dict__.update(kw)

    查看全部
  • 定义装饰器:

    定义计时函数:

    start_time=t的ime.time()#第一次取时间

    r=f(x)#运行一下装饰器装饰的函数

    end_time=time.time()#第二次取时间

    print'call %s() in %fs' %(f.__name__,end_time-start_time)#%s是字符串,被f.__name__方法返回的函数名所代替,%f是浮点型,被end_time-start_time的值,即函数运行的时间所代替。%是分隔符。log返回装饰的函数,装饰器返回计时函数。

    查看全部
  • 不太懂sorted的参数

    查看全部
  • ,匿名函数 lambda x: x * x 实际上就是:

    def f(x):
        return x * x

    关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。

    使用匿名函数,可以不必定义函数名,直接创建一个函数对象


    查看全部
  • 这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。

    闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。

    def count():

        fs = []

        for i in range(1, 4):

            def a(h=i):

                return h*h

            fs.append(a)

        return fs


    f1, f2, f3 = count()

    print f1(), f2(), f3()

    神奇的转换,多写个变量就避免循环了

    查看全部
    0 采集 收起 来源:python中闭包

    2018-12-26

举报

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

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