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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,

    查看全部
  • 装饰器作用:可以极大地简化代码,避免每个函数编写重复性代码

    如:打印日志:@log

           检查性能:@performance

            数据库事务:@transaction

            URL路由:@post('/register')


    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
    查看全部
    0 采集 收起 来源:python中闭包

    2019-09-30

  • 函数f为判断函数,依次对list的每一个元素进行判断

    查看全部
  • map函数把函数f作用在list的每一个元素上

    查看全部
  • 能接受函数作为参数的函数就是高阶函数

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

    • 把计算视为函数而非指令

    • 纯函数式编程:不需要变量,没有副作用,测试简单

    • 支持高阶函数,代码简洁

    查看全部
  • 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。

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

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


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

    查看全部
  • Lambda函数也叫做匿名函数,就是说没有具体名称的函数。Lambda函数可以使用任何数量的参数,但只能有一个表达式。

     Lambda和def

    1)def创建的方法是有名称的,而lambda没有。
    2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。
    3)lambda只是一个表达式,而def则是一个语句。
    4)lambda表达式” : “后面,只能有一个表达式,def则可以有多个。
    5)print等语句不能用于lambda中,def可以。
    6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。
    6)lambda函数不能共享给别的程序调用,def可以。


    查看全部
  • 调用子类的方法,如果子类中存在该方法则会先调用子类的方法,若子类中没有此方法,再到父类中查找

    查看全部
    0 采集 收起 来源:python中多态

    2019-09-25

  • if self.score==s.score://如果分数相同,执行下面代码

                return cmp(self.name,s.name)//分数相等比较名字,进行排序

    return -cmp(self.score,s.score)//前面添加负号,用来锁定分数始终是从高排到低,


    查看全部
    1 采集 收起 来源:python中 __cmp__

    2019-09-25

  • 传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性.

    def __init__(self, name, gender, **kw):

            self.name = name

            self.gender = gender

            for k ,v in kw.iteritems():

                setattr(self, k, v)

    **kw这里其实关注的是**这两个代表着关键字参数,kw是可以我们自己命名的,一个*表示的是可变参数,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
    for k, v in kw.iteritems():  这里的作用是循环,赋值,因为KW是两个**的,所以在P那一列赋值的时候必须使用age=18,这样的格式age就相当于name,18就相当于'Male',然后系统会检查这个赋值后,后面还有没有,有的话继续赋值,但是都必须符合那个规格来。
                setattr(self, k, v) 这里的作用是在实列__init__中添加一个age,在给它赋值18.


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

    查看全部

举报

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

微信扫码,参与3人拼团

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

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