为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • import time, functools


    def performance(unit):

        def pref_decorator(f):

            @functools.wraps(f)

            def wapper(*args ,**kw):

                t1 = time.time()

                r = f(*args, **kw)

                t2 = time.time()

                if unit == 'ms':

                    t = (t2 - t1) * 1000

                else:

                    t = t2 - t1

                print 'call %s () in %f %s'%(f.__name, t, unit)

                return r

            return wapper

        return pref_decorator


    @performance('ms')

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial.__name__


    查看全部
  • isinstance(实例化类,类型)

    查看全部
  • super(子类,self).__init__(共有的参数),初始化子类函数,就不用再重新写一遍了


    查看全部
  • import time


    def performance(unit):

        def pref_decorator(f):

            def fn(*args, **kw):

                t1 = time.time()

                r = f(*args, **kw)  

                t2 = time.time()

                if unit == 'ms':

                    t = (t2 - t1) * 1000 

                else:

                    t = t2 - t1

                print 'call %s() in %f %s'%(f.__name__,t,unit)

                return r

            return fn

        return pref_decorator


    @performance('ms')

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • import time


    def performance(f):

        def fn(*args ,**kw):

            t1 = time.time()

            r = f(*args , **kw)

            t2 = time.time()

            print 'call %s() in %fs'%(f.__name__,(t1-t2))

            return r

        return fn

    @performance

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • def count():

        fs = []

        for i in range(1, 4):

            def f(j):

                def g():

                    return j * j

                return g

            m = f(i)

            fs.append(m)

        return fs


    f1, f2, f3 = count()

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


    查看全部
  • def count():

        fs = []

        for i in range(1, 4):

            def f(j):

                def g():

                    return j * j

                return g

            m = f(i)

            fs.append(m)

        return fs


    f1, f2, f3 = count()

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


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

    2019-07-28

  • def calc_prod(lst):

        def lazy_prod():

            def f(x,y):

                return x * y

            return reduce(f,lst)#(f,lst,1)

        return lazy_prod


    f = calc_prod([1, 2, 3, 4])

    print f() 


    查看全部
  • def cmp_ignore_case(s1, s2):

        if s1.lower() < s2.lower():

            return -1

        if s1.lower() > s2.lower():

            return 1

        return 0


    print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)


    查看全部
  • Python内置的 sorted()函数可对list进行排序。

    但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

    s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

    当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')


    查看全部
  • def prod(x, y):

        return x * y


    print reduce(prod, [2, 4, 5, 7, 12])


    查看全部
  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

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

    查看全部
  • def format_name(s):

        #return s[0].upper()+s[1:].lower()

        return s.capitalize()

    print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • import math


    def add(x, y, f):

        return f(x) + f(y)


    print add(25, 9, math.sqrt)


    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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