### with上下文管理器
finally可以释放资源,通过with可以更方便地实现
语法结构
with context_expr[as var]:
语句块
打开资源后无论是否异常都会关闭资源
with open("d:/a.txt","r")as f: content=f.readline() print(content) print("程序执行结束")
### with上下文管理器
finally可以释放资源,通过with可以更方便地实现
语法结构
with context_expr[as var]:
语句块
打开资源后无论是否异常都会关闭资源
with open("d:/a.txt","r")as f: content=f.readline() print(content) print("程序执行结束")
### 常见异常的解决
注:return语句,一般不放在异常句子中,一般放最后
1.SyntaxError:语法错误
2.NameError:尝试访问一个没有申明的变量
3.ZeroDivisionError:除数为0 错误(零除错误)
4.ValueError:数值错误
5.TypeError:类型错误
6.AttributeError:访问对象的不存在的属性
7.IndexError:索引越界异常
8.KeyError:字典的关键字不存在
### try ... except...finally结构
无论是否异常都执行finally内容
### try except else结构
无异常,则执行else
### try...多个exception结构
try:
语句块
excep Exception1:
处理异常
excep Exception2:
处理异常
...
except BaseException:
处理更多可能遗漏的异常语句
### try...一个except结构
try:
被监控的可能引发异常的语句
except BaseException[as e]:
异常处理语句块
## 异常的本质
### 导引问题
### 设计模式——单例模式实现
设计模式——工厂模式实现
### 组合
is---a关系
has----a关系
### 对象的浅拷贝和深拷贝
1.变量的赋值操作
2.浅拷贝
拷贝时不包含子对象
3.深拷贝
拷贝时包含子对象
### 特殊属性
obj.__dict__ 对象的属性字典
obj.__class__ 对象所属的类
class.__bases__ 类的基类元组
class.__base__ 类的基类
class.__mro__ 类的层次结构
class.__subclasses__() 子类列表
### 特殊方法和运算符重载
__init__:构造函数
__del__:析构方法(删除)
__
### super()获得父类定义
mro()函数
多个父类有同样的方法,解释器会从左往右顺序搜索
### 多重继承
### 重写_str_的方法
### object根类
### 类成员的继承和重写
1.成员继承:子类继承了父类
2.
#### 继承
一个子类可以有多个父类
类定义没有指定父类,则默认父类是object类