Ygon's Day12_面向对象编程

1. 面向对象编程

  1. 类、对象的定义

​类就是拥有相同功能和相同属性的对象的集合。

​对象就是类的实例。

  1. 从生活中来看类和对象

​如果人是类,余婷就是对象,骆昊也是对象。

​如果电脑是类,我桌上的这台电脑也是对象

  1. 类的声明

​a. 语法:

​class 类名:

​ 类的内容(对象的属性和功能的集合)

​b. 说明

​class -声明类的关键字

​类名 -标识符,不能是关键字。见名知义,首字母大 写,驼峰式命名(每个单词的首字母大写)

​类的内容 -主要包含:类的说明文档、属性(普通的变量)、功能(函数/方法)

class Person:
    """人类"""
    #=====属性=======
    #=====方法=======
    pass
  1. 对象怎么声明

​对象 = 类名() -创建指定类对应的对象

  1. 类中的方法

​生命在类中的函数就是方法。

​类中的方法有三种:对象方法、类方法、静态方法

​1)对象方法:

​直接声明在类中的函数就是对象方法。

​有默认参数self。(self,当前对象-谁调用self就指向谁,当前 类的对象能做的事,self都能做)

​需要通过类的对象来调用:通过‘对象.方法()’的方式来调用

​2)类方法:

​声明函数前加@classmethod
​有默认参数cls,通过类调用的时候这个参数不用传参,系统 会自动把当前类传给cls。(cls,当前类,谁调用就指向谁,类能 做的事,cls都能做)
​通过类来调用,以“类.类方法()”来调用

​3)静态方法:

​声明函数前加@staticmethod
没有默认参数

init方法是类型默认继承的一个魔法方法,用来初始化类;本质是对象方法,但是不需要程序员自己调用,系统自动调用

通过类创建对象的时候,系统自动调用——init——方法,并且构造方法的实参会全部传给——init——方法

声明类的时候,系统会自动给我们创建一个函数,这个函数的函数名和声明的类的类名一样(构造方法),函数

  1. 类中的属性

    类中的属性分两种:对象属性和字段

    1)字段:

    ​ 声明在类中的变量就是字段

    ​ 字段需要通过“类.字段”的方式来使用

    ​ 当属性的值不会因为对象不同而不同,这种属性就可以声明成类的字段

    2)对象属性:

    ​ 在init方法中,以“self.属性 = 值“

    ​ 对象属性通过”对象.属性“来使用

    ​ 当属性的值会因为对象不同而不同的时候,使用对象属性

  2. 声明类的时候方法的选择

    1)对象方法:实现函数功能需要用到对象属性的时候

    2)类方法:实现函数功能不需要对象属性,但是需要类的相关操作,就使用类方法。

    3)静态方法:实现函数功能既不需要对象属性,也不需要类相关的操作,就使用静态方法。

  3. 对象属性的操作:

    python中的对象属性支持增、删、改、查

    1)查

    ​ a. 对象.属性 -获取指定对象指定属性对应的值,如果属性不存在,报错。

    ​ b. getattr(对象名,‘属性名’,默认值) -获取指定对象指定属性对应的值,当属性不存在时,返回默认值,如果没有默认值,报错。

    2)增、改

    ​ a. 对象.属性 = 值 -当属性不存在时添加属性值,当属性存在时,更改属性值

    ​ b. setattr(对象,属性名,值) -当属性不存在时添加属性值,当属性存在时,更改属性值

    3)删

    del 对象.属性

    delattr(对象,属性名)

你可能感兴趣的:(Ygon's Day12_面向对象编程)