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

python进阶

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

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

    2020-02-29

  • def format_name(s):

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


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



    查看全部
  • 高阶函数  高阶函数

    查看全部
  • 函数式编程

    查看全部
  • 1.Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。

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

    2.但是,对于参数不是一个的函数,调用将报错:

    查看全部
  • http://img1.sycdn.imooc.com//5e591f100001b95906480395.jpg初始化父类的属性

    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。

    查看全部
  • 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。

    查看全部
  • 在Python中,函数其实是一个对象:

    >>> f = abs
    >>> f.__name__
    'abs'
    >>> f(-123)
    123


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

    2020-02-27

  • 如果要限制添加的属性,就可以利用Python的一个特殊的__slots__实现。__slots__是指一个类允许的属性列表

    class Student(object):
        __slots__ = ('name', 'gender', 'score')
        def __init__(self, name, gender, score):
            self.name = name
            self.gender = gender
            self.score = score


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

    2020-02-27

  • 直接给属性赋值无法检查分数的有效性

    class Student(object):
        def __init__(self, name, score):
            self.name = name
            self.__score = score
        @property
        def score(self):
            return self.__score
        @score.setter
        def score(self, score):
            if score < 0 or score > 100:
                raise ValueError('invalid score')
            self.__score = score


    查看全部
    0 采集 收起 来源:python中 @property

    2020-02-27

  • 如果要把 Rational 转为 int,应该使用:

    class Rational(object):
        def __init__(self, p, q):
            self.p = p
            self.q = q
        def __int__(self):
            return self.p // self.q
    >>> print int(Rational(7, 2))
    3
    >>> print int(Rational(1, 3))
    0


    查看全部
  • 要表示有理数,可以用一个Rational类来表示:

    class Rational(object):
        def __init__(self, p, q):
            self.p = p
            self.q = q

    p、q 都是整数,表示有理数 p/q

    有理数加法

    class Rational(object):
        def __init__(self, p, q):
            self.p = p
            self.q = q
        def __add__(self, r):
            return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
        def __str__(self):
            return '%s/%s' % (self.p, self.q)
        __repr__ = __str__
    >>> r1 = Rational(1, 3)
    >>> r2 = Rational(1, 2)
    >>> print r1 + r2
    5/6


    查看全部
  • 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数

    class Students(object):
        def __init__(self, *args):
            self.names = args
        def __len__(self):
            return len(self.names)
    >>> ss = Students('Bob', 'Alice', 'Tim')
    >>> print len(ss)
    3


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

    2020-02-27

  • 对 intstr 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序

    class Student(object):
        def __init__(self, name, score):
            self.name = name
            self.score = score
        def __str__(self):
            return '(%s: %s)' % (self.name, self.score)
        __repr__ = __str__
        def __cmp__(self, s):
            if self.name < s.name:
                return -1
            elif self.name > s.name:
                return 1
            else:
                return 0
    >>> L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 77)]
    >>> print sorted(L)
    [(Alice: 77), (Bob: 88), (Tim: 99)]


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

    2020-02-27

举报

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

微信扫码,参与3人拼团

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

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