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

python进阶

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



    def performance(unit):

        def perf_decorator(f):

            @functools.wraps(f)

            def wrapper(*args,**kw):

                t1 = time.time()

                r = f(*args,**kw)

                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 wrapper

        return perf_decorator


    @performance('ms')

    def factorial(n):

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


    print factorial.__name__

    ===============================


    def f1(x):

        pass

    print f1.__name__

    ===============================

    def log(f):

        @functools.wraps(f)

        def wrapper(*args,**kw):

            print 'call...'

            #return f(*args,**kw)

            return f(x)

        #wrapper.__name__ = f.__name__

        #wrapper.__doc__ = f.__doc__

        return wrapper

    @log

    def f2(x):

        pass

    print f2.__name__





    查看全部
  • //我不会

    import time

    def performance(unit):

        def perf_decorator(f):

            def wrapper(*args,**kw):

                t1 = time.time()

                r = f(*args,**kw)

                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 wrapper

        return perf_decorator


    @performance('ms')

    def factorial(n):

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


    print factorial(10)


    查看全部
  • f.__name__不对

    注意这个下划线

    def performance(f):

        def fn(*args,**kw):

            t1 = time.time()

            r = f(*args,**kw)

            t2 = time.time()

            #print 'call %s() in %fs' % ( f._name_, (t2 - t1))下划线不对

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

            return f

        return fn


    查看全部
  • 1、自己思路

    def count():

        fs = []

        for i in range(1, 4):

            fs.append(i*i)

        return fs

    f1, f2, f3 = count()

    print f1, f2, f3

    2、标准答案

    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()

    哪里不同?

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

    2020-03-08

  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。

    查看全部
  • 使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math:

    import math


    查看全部
  • 没看懂这节内容

    查看全部
  • 注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

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

    a = '     123'
    a.strip()

    结果: '123'

    a='\t\t123\r\n'
    a.strip()

    结果:'123'


    查看全部
  • 这里的代码不够详细。比如,我定义一个方法:

    @fun

    def myprint():

        print "这是第一步" 

    def fun1(fun):

        def fun2():

            print '这是第二步'

            return fun

        return fun2

       

        

    查看全部
  • filter() 接收的函数必须判断出一个数的平方根是否是整数,而 math.sqrt()返回结果是浮点数。

    判断x开方是不是整数,是的就返回;不是就不返回;

    math.sqrt(x)返回到的是浮点型

    先转化成整型;

    再判断这个平方根相乘是不是原来的数。是就返回,不是就不返回

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

    函数名就是指向函数的变量

    查看全部
  • 1、大小写函数

    小转大,用str.upper();

    大转小,用str.lower();

    2、字符串取首字母用[]中括号不是小括号

    首字母s[0]

    3、字符串的长度用len(str)

    4、截取字符串用[]中括号

    str[start:end]

    包括start不包括end,如果start=0或者end=len(str),那么可以省略0或len(str)

    查看全部
  • 自我思路:

    def format_name(s):

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

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

    答案:

    def format_name1(s):

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

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


    查看全部
  • Python支持的函数式编程

    查看全部
  • 函数式编程特点

    查看全部

举报

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

微信扫码,参与3人拼团

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

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