发展过程

image.png

相关简介

  • 面向过程,是把解决的问题的步骤分析出来后再用编程一步一步实现

    • 流程化编程任务明确,具体步骤清楚便于分析,同时效率高,善于结合数据结构来开发高效率的程序
    • 代码重用性低,扩展能力差,后期维护难度比较大
  • 面向对象,是一种抽象化的编程思想,很多编程语言都有的一种思想

    • 结构清晰,程序是模块化和结构化,代码重用率高,可继承覆盖,系统低耦合易维护
    • 面向多个不同对象编程开销大,对象的属性不允许外部直接存取,性能低扩展能力差
  • 类 ( class ),是对一组相似 ( 特征和行为 ) 事物统称,是一个抽象的概念,不是真实存在的事物,类是用来创建对象的模板

    • 特征即是 属性,分为实例属性和类属性
    • 行为即是 方法,分为实例方法和类方法
  • 属性,在类中就是一个变量,用于保存类或对象的数据。实例属性即实例变量、类属性即类变量

  • 方法,在类中就是一个函数,用于定义类或对象的功能。

  • 实例化,通过类生产实例的过程

  • 实例,因为类不能直接使用,通过类创建出真实存在的事物才可以使用,该事物叫实例,又叫实例化对象,也叫对象。即 实例=实例化对象=对象

通俗来说,制作工程师根据功能图纸制作出洗衣机,图纸就是类,洗衣机就是对象,即类与对象的关系就是用类去创建一个或多个对象,用类去实例化对象

类与函数

  • 类面向是对象功能更强大,函数只是做特定的功能
  • 主要区别是类中包含了各种变量(属性)和方法(函数),而函数没有这些。

定义

语法

  1. class 类名(父类): # 用 class 进行定义类
  2. 类体
  3. 实例 = 类名() # 类名() 赋值于一个变量(实例名),即生成实例

类名(),这里的小括号表示调用构造方法,构造方法用于初始化对象

  • 旧式类写法,Py2 使用

    1. class 类名():
    2. pass
    3. 实例(名) = 类名()
  • 新式类写法,Py3 使用

    1. class 类名(object): # object 建议写(可不写)
    2. pass
    3. 实例(名) = 类名()

    旧式类子类不能使用 super 函数调用父类的函数等其他功能限制,所以推荐使用新式类写法。object 是所有类的顶级类和父类,基类

  • 案例
    • 创建一个动物类,并生成一个对象 ```python class Animal(object): # 创建一个类(动物类) pass

dog = Animal() # 用动物类这个类创建一个实例(狗)

  1. - 创建多个对象
  2. ```python
  3. class Animal(object):
  4. pass
  5. dog = Animal() # 用动物类这个类创建一个实例(狗)
  6. cat = Animal() # 用动物类这个类创建一个实例(猫)

先定义类再创建实例对象,类名要一定要用大驼峰命名法,同时也要符合 Python 标识符命名规范,obeject 在 Python 中是所有类的基类

特性

  • 封装

    • 将 属性 和 方法 书写到类的里面的操作
    • 封装可以为 属性 和 方法 添加私有权限
  • 继承

    • 子类默认继承父类的所有属性和方法
    • 子类可以重写父类属性和方法
  • 多态

    • 传入不同的对象,产生不同的结果