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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:

    >>> import functools
    >>> int2 = functools.partial(int, base=2)
    >>> int2('1000000')
    64
    >>> int2('1010101')
    85

    所以,functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。


    查看全部
    0 采集 收起 来源:python中偏函数

    2018-12-12

  • add() 函数需要传入两个参数,但是 @log 写死了只含一个参数的返回函数。

    要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用:

    def log(f):
        def fn(*args, **kw):
            print 'call ' + f.__name__ + '()...'
            return f(*args, **kw)
        return fn

    现在,对于任意函数,@log 都能正常工作。


    查看全部
  • Mark
    查看全部
    0 采集 收起 来源:课程介绍

    2018-12-12

  • def performance(unit):#创建带参数的decorator,其中unit为参数的形参    def perf_decorator(f):#定义装饰器函数         @functools.wraps(f)#将原函数f的所有属性复制到新函数wrapper              def wrapper(*args, **kw):#定义装饰函数             t1 = time.time()#记录函数开始时间                      = f(*args, **kw)#运行函数f                         t2 = time.time()#记录函数结束时间                         = (t2 - t1) * 1000 if unit=='ms' else (t2 - t1)#计算函数f的运行时间                         print 'call %s() in %f %s' % (f.__name__, t, unit)#打印函数f的名称,运行时间以及所带参数的实参                         return r#调用原函数f         return wrapper#返回装饰函数    return perf_decorator#返回装饰器函数

    查看全部
  •         def f(j):

                def g():

                    return j*j

                return g

    上面这段代码是定义了一个返回内部函数的高阶函数f()

            r= f(i)

            fs.append(r)

        return fs

    上面三句是在最外面的函数里调用三次内部函数f()并返回,即返回三个内部函数f()

    通过添加了一层高阶函数f()达到不用调用外部函数局部变量的目的

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

    2018-12-12

  • python内置函数

    【计算】

    math.sum() :求和

    abs:其绝对值

    math.sqrt():开方

    reduce(function,iterable -- 可迭代对象

    )就是一个迭代的函数,将对象中的前两个进行function计算,其结果再与第三个进行function计算。

    list.append():在list里面添加值,返回一个新的list。

    add() :用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。

    【文本】

    str.upper/lower() :全部字母大写/小写

    str.capitalize():首字母大写

    str.strip():删除掉文本中的rm, 当rm为空是就是删除空格。

    sorted() :对list中的值进行排序的函数

    python的高阶函数:

    map(function,list) :返回值为:function作用在一个list并得到一个新的list

    reduce(function,list,num3) :function是有两个参数的函数;返回值为:list反复调用function函数;num3是初始值。

    fliter(function,list) :function是一个判断作用,返回true和false,fliter根绝判断自动过滤掉不符合提哦条件的元素,返回符合条件的一个新list。

    sorted() :接受一个比较函数(自定义函数)(可以决定升序降序),返回一个排序。

    lambda x,y:  :这是一个匿名函数,x,y是参数,不用写return匿名函数可以简化代码。

    decorator() :接受一个函数返回一个函数。

    functools.partial():可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了

    python装饰器函数

    x1调用一个函数y而且返回另一个新的函数x2,这样x2就覆盖了x1,所以装饰器(@语法)可以简化这种代码。

    @log :

    def log(f):
        def fn(x):
            print 'call ' + f.__name__ + '()...'
            return f(x)
        return fn

    @performance :

    【这块我不懂啊!!!】


    查看全部
    0 采集 收起 来源:python中偏函数

    2018-12-12

  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码

    查看全部
    1. Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数

    2. 返回函数可以把一些计算延迟执行

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

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

    3. sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较:

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

            return x + y


    >>> def log(f):

            def fn(*args, **kw):

                print 'call ' + f.__name__ + '()...'

                return f(*args, **kw)

            return fn


    >>> log(add)

    <function fn at 0x03162BB0>

    >>> x=log(add)

    >>> x(5,9)

    call add()...

    14

    >>> 


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

    2. 利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:

    3. def is_not_empty(s):
          return s and len(s.strip()) > 0
      filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])
    4. 结果:['test', 'str', 'END']

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

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

    7. a = '     123'
      a.strip()
    8. 结果: '123'

    9. a='\t\t123\r\n'
      a.strip()
    10. 结果:'123'

    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。 如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。

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

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

    查看全部
  • *args: 任意数量参数,传递的是一个list **kw: 任意数量k-v值,传递的是一个dict

    解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v

    查看全部
  • Python lower() 方法转换字符串中所有大写字符为小写。

    Python upper() 方法将字符串中的小写字母转为大写字母。

    查看全部

举报

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

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