好的!我们将系统性地讲解Python面向对象编程(OOP)与异常处理的核心知识,并辅以代码示例。
一、面向对象编程(OOP)
面向对象编程的核心是通过**类(Class)和对象(Object)**组织代码,提升可复用性和可维护性。
1. 类与对象
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. 三大特性
-
封装:隐藏内部实现细节
class BankAccount:
def __init__(self, balance=0):
self.__balance = balance # 私有属性def deposit(self, amount):
if amount > 0:
self.__balance += amountdef get_balance(self):
return self.__balance # 通过方法访问 -
继承:子类复用父类功能
class Animal:
def speak(self):
passclass Dog(Animal):
def speak(self): # 方法重写
return "汪汪!" -
多态:不同对象对同一方法表现不同行为
def animal_sound(animal):
print(animal.speak())animal_sound(Dog()) # 输出:汪汪!
二、异常处理
异常处理用于捕获程序运行时错误,避免崩溃。
1. 基本语法
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. 自定义异常
class CustomError(Exception):
def __init__(self, message):
self.message = message
try:
raise CustomError("自定义错误!")
except CustomError as e:
print(e.message) # 输出:自定义错误!
4. 断言(Assert)
用于调试阶段验证条件:
x = 5
assert x > 0, "x必须为正数" # 条件为假时抛出AssertionError
三、综合应用示例
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应用!

