Python基础(八)——面向对象

成员方法

  1. 类的组成:

    • 类的属性,称之为:成员变量
    • 类的行为,称之为:成员方法、

    注意:函数是写在类外的,定义在类内部,我们都称之为方法

  2. 类和成员方法的定义语法:

    1
    2
    3
    4
    5
    6
    7
    8
    class 类名称:
    成员变量

    def 成员方法(self,参数列表):
    成员方法体


    对象 = 类名称()
  3. self的作用

    • 表示类对象本身的意思
    • 只有通过self,成员方法才能访问类的成员变量
    • self出现在形参列表中,但是不占用参数位置,无需理会

类和对象

  1. 类和对象的关系:

    类就是程序中的“设计图纸”,对象是基于图纸生产的具体实体

  2. 什么是面向对象编程:

    面向对象编程就是使用对象编程。

    即设计类,基于类创建对象,并使用对象来完成具体的工作

构造方法

  1. 构造方法的名称:__init__,init前后是两个下划线
  2. 构造方法的作用:
    • 构建对象的时候会自动运行
    • 构建类对象的传参会传递给构造方法,借此特性可以给成员变量赋值
  3. 注意事项:
    • 构造方法不要忘记self关键字
    • 在方法内使用成员需要使用self

魔术方法

方法 功能
__init__ 构造方法,可用于创建类对象的时候设置初始化行为
__str__ 用于实现类对象转字符串的行为
__lt__ 用于2个类对象进行小于或大于比较
__le__ 用于2个类对象进行小于等于或大于等于比较
__eq__ 用于2个类对象进行相等比较

封装

  1. 封装的概念:将现实世界事物在类中描述为属性和方法,即为封装

  2. 什么是私有成员?为什么需要私有成员?

    现实事物有部分属性和行为是不公开对使用者开放的。同样在类中描述属性和方法的时候也需要达到这个要求,就需要私有成员了

  3. 如何定义私有成员:

    成员变量和成员方法的命名均以__作为开头(两个下划线)

  4. 私有成员的访问限制:

    • 类对象无法访问私有成员
    • 类中其他成员可以访问私有成员

继承

  1. 继承:继承就是一个类,继承了另一个类的成员变量和成员方法

    语法:

    1
    2
    class (父类1,父类2,……)
    类体内容

    子类构建的类对象,可以

    • 有自己的成员变量和成员方法
    • 使用父类的成员变量和成员方法
  2. 单继承和多继承

    • 单继承:一个类继承另一个类
    • 多继承:一个类继承多个类,按照顺序从左向右依次继承
    • 多继承中,如果父类有同名方法或属性,先继承的优先级高于后继承
  3. pass关键字的作用:

    pass是占位语言,用来保证函数(方法)或类定义的完整性,表示无内容,空的意思

  4. 复写:对父类的成员属性或成员方法进行重新定义

    语法:在子类中重新实现同名成员方法或成员属性即可

  5. 在子类中调用父类成员:

    • 方法一:

      调用父类成员:

      调用父类成员变量:父类名.成员变量

      调用父类成员方法:父类名.成员方法(self)

    • 方法二

      使用super()调用父类成员

      调用成员变量:super().成员变量

      调用成员方法:super().成员方法()

    • 注意:只可以在子类内部调用父类同名成员,子类的实体类调用默认是调用子类复写的

类型注解

变量的类型注解

  1. 什么是类型注解,有什么作用?

    在代码中涉及数据交互之时,对数据类型进行显式的说明,可以帮助:

    • PyCharm等开发工具对代码做类型推断协助做代码提示
    • 开发者自身做类型类型的备注
  2. 类型注解支持:

    • 变量的类型注解
    • 函数(方法)的形参和返回值的类型注解
  3. 变量的类型注解语法

    • 语法1:变量:类型
    • 语法2:在注释中,# type: 类型
  4. 注意事项

    类型注解只是提示性的,并非决定性的。数据类型和注解类型无法对应也不会导致错误

函数(方法)的类型注解

  1. 函数(方法)可以为哪里添加注解?

    • 形参的类型注解
    • 返回值的类型注解
  2. 函数(方法)的类型注解语法:

    1
    2
    def 函数方法名(形参: 类型,……,形参: 类型) -> 返回值类型:
    pass

    注意,返回值类型注解的符号使用: ->

Union类型

  1. 什么是Union类型?

    使用Union可以定义联合类型注解

  2. Union的使用方法

    • 导包:from typing import Union
    • 使用:Union[类型,……,类型]

多态

  1. 什么是多态?

    多态指的是,同一行为,使用不同对象获得不同的状态

    如,定义函数(方法),通过类型注解声明需要的父类对象,实际传入子类对象进行工作,从而获得不同的工作状态

  2. 什么是抽象类(接口)?

    包含抽象方法的类,称之为抽象类。抽象方法是指:没有具体实现的方法(pass)称之为抽象方法

  3. 抽象类的作用

    多用于顶层设计(设计标准),以便子类做具体实现。也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法并配合多态使用,获得不同的工作状态

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2024 LittleWin
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信