好的!我们将系统性地讲解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. 三大特性
-
封装:隐藏内部实现细节
pythonclass 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 # 通过方法访问 -
继承:子类复用父类功能
pythonclass Animal: def speak(self): pass class Dog(Animal): def speak(self): # 方法重写 return "汪汪!" -
多态:不同对象对同一方法表现不同行为
pythondef 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应用!