面向对象

一、类的成员方法

1.类是有那两部分组成呢?

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

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

2.类和成员的定义语法

class 类名称:
    成员变量

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

对象 = 类名称()

3.self的作用

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

二、构造方法

1.Python类可以使用__init__()方法,称之为构造方法。

2.可以实现:

  • 在创建对象(构造类)的时候,会自动执行。

  • 在创建对象(构造类)的时候,将传入参数自动传递给__init__方法使用。
    3.注意事项

  • 构造方法名称:init,千万不要忘记init前后都有2个下划线

  • 构造方法也是成员方法,千万不要在参数列表中提供:self

  • 在定义方法内定义成员变量,需要使用self关键字

def __init__(self, name, age, tel):
    self.name = name
    self.age = age
    self.tel = tel

三、魔术方法

class MyClass:
    def __init__(self, 参数):
        """构造函数 - 对象创建时调用"""
        pass
    
    def __str__(self):
        """返回对象的字符串表示 - print()时调用"""
        return "字符串表示"
    
    def __len__(self):
        """返回长度 - len()时调用"""
        return 长度值
    
    def __eq__(self, other):
        """相等比较 - == 时调用"""
        return self.属性 == other.属性

四、封装

1.面向对象的三大特性

简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。

  • 封装

  • 继承

  • 多态

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

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

4.定义私有成员:成员变量和成员方法的命名均以__作为开头即可。

5.私有变量的访问限制:类对象无法访问私有成员,但类中其他对象可以访问私有成
员。

五、继承

(一)继承的基础语法

1.单继承

class 类名(父亲名):
    类内容体<details>

2.多继承

class 类名(父亲1, 父亲2, ......, 父亲N):
    类内容体<details>

3.pass关键字

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

(二)复写和使用父类成员

1.复写

子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么可以进行复写。即:在子类中重新定义同名的属性或方法即可。

2.调用父类同名成员

一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员如果需要是有被复写的父类成员,需要特殊的调用方法:

方法1:

  • 调用父类成员
    使用成员变量:父亲名.成员变量
    使用成员方法:父亲名.成员方法

方法2:

  • 使用super()调用父类成员
    使用成员变量:supper().成员变量
    使用成员方法:supper().成员方法()

六、类型注解

(一)变量的类型注解

1.为变量设置类型注解

  • 基础语法: 变量:类型

2.注释中进行类型注解

  • 语法: # type : 类型

(二)函数(方法)的类型注解

  • 语法如下:

def 函数方法名(形参: 类型, ......, 形参: 类型) -> 返回值类型;

(三)Union类型

1.什么是Union类型?

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

2.Union的使用方式

  • 导包:from typing import Union

  • 使用:Union[类型, ......, 类型]

七、多态

1.什么是多态?

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

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

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

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

3.抽象类的作用

  • 多用于做顶层设计(设计标准),以便子类做具体实现。
    也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法并配合多态使用,获得不同的工作状态。
posted @ 2025-10-20 17:01  zhaoyonghui  阅读(4)  评论(0)    收藏  举报