Python面向对象深入探讨:封装、继承与异常处理

需积分: 1 0 下载量 152 浏览量 更新于2024-08-04 收藏 9KB TXT 举报
在Python面向对象编程中,day04笔记主要关注了异常处理的高级概念以及与之相关的控制结构。首先回顾了Python面向对象的基础,包括: 1. **对象**:对象是类的实例,拥有自己的属性(实例变量),这些变量存储特定对象的数据,以及行为(实例方法),即对象能执行的操作。 2. **类**:类定义了一种数据类型,它包含属性(类变量),这些是所有该类实例共享的变量,和行为(类方法),如`@classmethod`,这些是不依赖于任何特定实例的方法。面向对象的重要特征包括: - **封装**:通过类和私有变量(以双下划线`__`开头)来隐藏实现细节,提供安全的内部状态。 - **继承**:子类可以从父类继承属性和方法,实现代码复用,例如多继承允许一个子类同时从多个父类继承特性。 - **多态**:Python支持动态多态,即使在运行时也能根据对象的实际类型调用适当的方法。 3. **方法重写**:Python提供了对内置函数如`repr()`、`str()`、`int()`等的重写机制,允许自定义对象的转换方式。`__mro__`属性是类方法查找顺序的记录,`super()`函数则用于在方法查找链中向上级类查找。 4. **迭代器与可迭代对象**:`yield`关键字用于创建迭代器,如`myyield()`函数就是一个简单的迭代器,它会按顺序生成数字。`iter()`和`next()`用于操作迭代器。 然后,day04笔记的重点转向了异常处理: - **异常处理**:`try-except`结构用于捕获和处理程序运行时可能出现的错误,可以指定不同的异常类型来处理不同情况。`try-finally`则确保某些操作无论是否出现异常都要被执行,如资源清理。 - **异常触发**:`raise`语句用于主动引发异常,`assert`语句用于在满足条件时抛出`AssertionError`,提供一种断言检查功能。 - **with语句**:这是一种上下文管理协议的实现,用于确保资源在使用完毕后能正确地关闭或释放,避免了手动管理可能导致的资源泄露问题。一个类只要实现了`__enter__`和`__exit__`方法,就可以作为环境管理器用于`with`语句中。 最后,对象属性管理通过`getattr()`函数来获取或设置对象的属性,这个函数可以根据给定的名称查找属性,并提供默认值。 day04的笔记重点是深入理解面向对象编程中的异常处理机制以及如何优雅地管理资源,这对于编写健壮的Python代码至关重要。