编辑
2025-04-13
python
0
请注意,本文编写于 51 天前,最后修改于 51 天前,其中某些信息可能已经过时。

目录

一、面向对象基础
1. 类与对象
2. 成员方法
3. 构造方法
二、面向对象三大特性
1. 封装
2. 继承
3. 多态
三、高级特性
1. 魔术方法
2. 类型注解
四、综合应用模式
数据处理案例设计
五、关键总结

Python面向对象

Python第十课,本文将讲述Python面向对象

一、面向对象基础

1. 类与对象

  • :程序中的"设计图纸",用于描述事物的属性和行为
  • 对象:基于类创建的实体,包含具体数据和行为
  • 关系:类是模板,对象是实例(如:学生类 vs 张三学生对象)
python
class Student: # 属性(成员变量) name = None age = None # 行为(成员方法) def study(self): print(f"{self.name}正在学习") # 创建对象 stu = Student() stu.name = "张三" stu.study()

2. 成员方法

  • 定义:类中定义的函数称为方法
  • self:必须作为第一个参数,表示对象自身
  • 调用:通过对象调用时自动传递self参数
python
def introduce(self): print(f"我叫{self.name},今年{self.age}岁")

3. 构造方法

  • 作用:对象创建时自动执行初始化
  • 语法__init__
  • 特性:可接收参数初始化成员变量
python
def __init__(self, name, age): self.name = name self.age = age

二、面向对象三大特性

1. 封装

  • 核心:隐藏实现细节,暴露安全接口
  • 私有成员__开头的变量/方法(实际是名称改写)
  • 访问控制
    • 公有成员:可被外部访问
    • 私有成员:仅类内部访问
python
class Phone: __voltage = 3.7 # 私有变量 def __check_5g(self): # 私有方法 if self.__voltage > 3: return True def call(self): # 公有方法 if self.__check_5g(): print("5G通话已开启")

2. 继承

  • 单继承class 子类(父类)
  • 多继承class 子类(父类1, 父类2)
  • 方法重写:子类定义同名方法覆盖父类实现
  • super():调用父类方法
python
class AndroidPhone(Phone): def __init__(self, brand): super().__init__() # 调用父类构造 self.brand = brand def call(self): # 方法重写 print(f"{self.brand}定制化通话界面") super().call()

3. 多态

  • 核心:相同接口不同实现
  • 实现方式
    • 继承:子类重写父类方法
    • 抽象类:定义方法规范
python
from abc import ABC, abstractmethod class Animal(ABC): @abstractmethod def sound(self): pass class Dog(Animal): def sound(self): return "汪汪" class Cat(Animal): def sound(self): return "喵喵"

三、高级特性

1. 魔术方法

  • __str__:定义对象字符串表示
  • __eq__:定义相等比较逻辑
  • __lt__:定义大小比较逻辑
python
class Product: def __init__(self, price): self.price = price def __str__(self): return f"产品价格:{self.price}" def __lt__(self, other): return self.price < other.price

2. 类型注解

  • 变量注解var: type
  • 函数注解:参数和返回值类型提示
  • Union类型:联合类型注解
python
from typing import Union def process(data: Union[int, str]) -> list: return [data] * 3

四、综合应用模式

数据处理案例设计

  1. 数据封装:创建数据类统一存储格式
  2. 读取器类:抽象基类定义接口
  3. 多态处理:不同文件格式子类实现
  4. 计算分析:独立业务类处理数据
  5. 可视化:使用PyEcharts进行展示
python
# 数据基类 class BaseData: def __init__(self, date, amount): self.date = date self.amount = amount # 文件读取器(抽象类) class FileReader: def read(self, path) -> list[BaseData]: raise NotImplementedError # CSV实现 class CSVReader(FileReader): def read(self, path): # 解析CSV返回BaseData列表 pass # 业务处理 class DataAnalyzer: def __init__(self, reader: FileReader): self.reader = reader def daily_summary(self, path): data = self.reader.read(path) # 计算逻辑...

五、关键总结

  1. 类设计三要素:属性、方法、构造
  2. 封装核心:私有成员保护数据安全
  3. 继承要点:代码复用与扩展
  4. 多态本质:接口统一,实现不同
  5. 类型注解:提升代码可读性
  6. 设计模式:高内聚低耦合,面向接口编程
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dageling003

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!