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

python进阶

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

    function:函数名称,只是abs,而不是abs()

    iterable:一个或多个序列


    查看全部
  • python装饰器

    作用:极大地简化代码,避免每个函数编写重复性代码

    打印日志:@log

    检测性能:@performance

    数据库事务:@transaction

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

    查看全部
  • python中的匿名函数

    关键字lambda表示匿名函数,冒号前面的x表示函数参数

    限制:只能有一个表达式,不写return,返回值就是该表达式的结果。

    使用匿名函数可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码。

    查看全部
  • 数学运算:
    表示有理数,可以用Rational类来表示

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

    要让Rational进行+运算,需要正确实现__add__

    def __add__(self, r):
            return Rational(self.p * r.q + self.q * r.p, self.q * r.q)


    查看全部
  • __len__

         如果一个类表现得像一个list,要获取多少个元素,就得用len()函数。要让len()函数工作正常,类必须提供一个特殊方法__len__(),它返回元素得个数。

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

    2019-07-22

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

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

    a = '     123'
    a.strip()

    结果: '123'

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

    结果:'123'


    查看全部
  • __cmp__

        对于int、str等内置数据类型排序时,python的sorted()按照默认的比较函数cmp排序,但是,如果对一组Student类的实力排序时,就必须提供我们自己的特殊方法__cmp__()。

        如果List不仅仅包含student类,则__cmp__可能会报错

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

    2019-07-21

  •      如果要把一个类的实例变成str,就需要实现特殊方法__str__()

        python定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__str__()用于显示给用户,而__repr__()用于显示给开发人员

        __repr__的偷懒定义方法:__repr__=__str__

    查看全部
  • 特殊方法:任何数据类型的实例都有一个特殊方法:__str__()

    例如:用于print的__str__、用于len的__len__、用于cmp的__cmp__

    特点:特殊方法定义在class中、不需要直接调用、python的某些函数或操作符会调用对应的特殊方法

    正确实现特殊方法

    • 只需要编写用到的特殊方法

    • 有关联性的特殊方法都必须实现

    查看全部
  • 获取对象信息:
        拿到一个变量,除了用isintance()判断它是否为某种类型的实例外。首先可以用type()函数获取变量的类型,它返回一个Type对象,其次,可以用dir()函数获取变量的所有属性。

        对于实例变量,dir()返回所有实例属性,包括'__class__'这类有特殊意义的属性。注意到方法'whoAmI'也是s的一个属性。

        dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要getattr()和setattr()函数了

    >>> getattr(s, 'name')  # 获取name属性'Bob'
    
    >>> setattr(s, 'name', 'Adam')  # 设置新的name属性


    查看全部
  • 多重继承:
        除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。

        多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用

    查看全部
  • 多态:

        类具有继承关系,并且子类类型可以向上转型看作父类类型,如果我们从Person派生出Student和Teacher,并都写了whoAmI()方法。在一个函数中,如果我们接受一个变量x,则无论该x是Person、student还是teacher,都可以正确打印结果。

        这种行为称为多态,也就是说,方法调用将作用在x的实际类型上。s是Student类型,它实际上拥有自己的whoAmI()方法以及从Person继承的whoAmI方法,但调用s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。

        由于python是动态语言,所以,传递给函数who_am_i(x)的参数x不一定是Person或Person的子类型。任何数据类型的实例都可以,只要它有一个whoAmI()的方法即可。这就是动态语言和静态语言最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用

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

    2019-07-21

  • 判断类型

        函数isinstance()可以判断一个变量的类型,既可以哎python内置的数据类型如str,lisr,dict,也可以用在我们自定义的类,它们本质上都是数据类型

        isinstance(p,person)----#判断p是不是person类型

        在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法;一个实例可以看成它本身的类型,也可以看成它父类的类型

    查看全部
  • 继承一个类:

        一定要用super(Student,self).__init__(name,gender)去初始化父类,否则,继承Person的Student将没有name和gender。

        函数super(Student,self)将返回当前类继承的父类,即Person,然后调用__init__()方法,注意self参数已在supper()中传入,在__init.__()中将隐式传递,不需要写出(也不能写)


    查看全部
  • 类的继承:

    • 新类不必从头编写

    • 新类从现有的类继承,就自动拥有了现有类的所有功能

    • 新类只需要编写现有类缺少的新功能

      继承的好处

    • 复用已有代码

    • 自动拥有了现有类额所有功能

    • 只需要编写缺少的新功能

    Has关系应该使用组合而非继承

    调用super().__init__,是用来初始化父类的

    super(SubClass,self).__init__(args)

    查看全部

举报

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

微信扫码,参与3人拼团

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

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