Python面向对象编程与异常处理实战

好的!我们将系统性地讲解Python面向对象编程(OOP)与异常处理的核心知识,并辅以代码示例。


一、面向对象编程(OOP)

面向对象编程的核心是通过**类(Class)对象(Object)**组织代码,提升可复用性和可维护性。

1. 类与对象
python 复制代码
class Person:
    def __init__(self, name, age):  # 构造函数
        self.name = name
        self.age = age
    
    def greet(self):
        return f"你好,我叫{self.name},今年{self.age}岁!"

# 创建对象
p1 = Person("张三", 25)
print(p1.greet())  # 输出:你好,我叫张三,今年25岁!
2. 三大特性
  • 封装:隐藏内部实现细节

    python 复制代码
    class BankAccount:
        def __init__(self, balance=0):
            self.__balance = balance  # 私有属性
        
        def deposit(self, amount):
            if amount > 0:
                self.__balance += amount
        
        def get_balance(self):
            return self.__balance  # 通过方法访问
  • 继承:子类复用父类功能

    python 复制代码
    class Animal:
        def speak(self):
            pass
    
    class Dog(Animal):
        def speak(self):  # 方法重写
            return "汪汪!"
  • 多态:不同对象对同一方法表现不同行为

    python 复制代码
    def animal_sound(animal):
        print(animal.speak())
    
    animal_sound(Dog())  # 输出:汪汪!

二、异常处理

异常处理用于捕获程序运行时错误,避免崩溃。

1. 基本语法
python 复制代码
try:
    # 可能出错的代码
    result = 10 / 0
except ZeroDivisionError:
    print("除数不能为零!")
except Exception as e:  # 捕获所有异常
    print(f"未知错误:{e}")
else:
    print("未发生异常时执行")
finally:
    print("无论是否异常都执行")
2. 常见异常类型
异常类型 触发场景
ValueError 无效参数(如int('a')
FileNotFoundError 文件不存在
IndexError 索引超出范围
KeyError 字典键不存在
3. 自定义异常
python 复制代码
class CustomError(Exception):
    def __init__(self, message):
        self.message = message

try:
    raise CustomError("自定义错误!")
except CustomError as e:
    print(e.message)  # 输出:自定义错误!
4. 断言(Assert)

用于调试阶段验证条件:

python 复制代码
x = 5
assert x > 0, "x必须为正数"  # 条件为假时抛出AssertionError

三、综合应用示例

python 复制代码
class FileProcessor:
    def __init__(self, filename):
        self.filename = filename
    
    def read_file(self):
        try:
            with open(self.filename, 'r') as f:
                return f.read()
        except FileNotFoundError:
            return "文件不存在"
        except IOError:
            return "文件读取失败"

# 使用
processor = FileProcessor("data.txt")
content = processor.read_file()
print(content)

四、总结

  • OOP:通过类组织代码,强调封装、继承、多态。
  • 异常处理 :使用try-except结构保证程序健壮性。
  • 最佳实践
    • 优先使用具体异常类型(如FileNotFoundError
    • 善用finally清理资源(如关闭文件)
    • 自定义异常提升可读性

通过系统学习,你将能构建更稳定、可扩展的Python应用!

相关推荐
apocelipes12 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户83562907805113 小时前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent18 小时前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m62521 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵2 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸3 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学3 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员