——————————————————————————————————————
异常:当Python检测到一个错误时,解释器就无法继续执行了,这就是所谓的异常。
例如:
当我们想打印123数字时,如果没有置顶写代码,那么就会发生这种错误提示信息。
这就是我们所说的异常。(上述红色提示:缩进错误)
———————————————————————————————————————————
当我们再次将代码重新置顶之后:
输出结果:
———————————————————————————————————————————
那么,常见的Python异常有哪些呢?
输出结果:
但是当我们如此输入一个数字之后:
ZeroDivisionError:division by zero
异常组成:'异常类型':'具体描述的信息'
:(冒号)前面的内容(ZeroDivisionError)是我们的异常类型,
冒号后面内容(division by zero)是我们的一个具体的描述信息.
_____________________________________________________________________________
单个异常捕获:是指在程序代码运行的过程中,不让代码终止没让其继续运行,同时可以给使用者一个提示信息并记录这个bug,便于后期改进。
" " "
语法格式:
try:
可能发生异常的代码
except 异常类型:
发生异常执行代码
" " "
这样他就不会报错了。
但是,0怎么办呢?
即使我们有 except ValueError
它也会报错:
但是我们可以将错误类型传给except......
这样就能显示异常了。
_____________________________________________________________________________
捕获多个异常:
语法格式:
try:
可能发生异常的代码
except 异常类型1:
发生异常执行代码
except 异常类型2:
发生异常执行代码
当然:
还有这种语法格式:
try:
可能发生异常的代码
except 异常的类型 as 变量名:
发生异常的代码:
print(变量名)
_____________________________________________________________________________
打印异常信息
———————————————————————————————————————————
捕获所有异常(异常的完整结构)
语法格式:
try:
可能发生异常的代码
except Exception as 任意变量名:
发生异常的代码
print(zmy)
else:
print("没有发生异常,我会执行")
finally:
print("不管有没有发生异常,我都会执行。")
——————————————————————————————————————
例如:
这是正常的执行:
异常的执行:
_____________________________________________________________________________
抛出异常即:主动抛出错误,使代码无法继续执行。
——————————————————————————————————————
断言
当条件满足时,下面的代码会输出
否则:
那么,当我们换成断言去进行判断时:
当条件不满足时:
它会主动抛出异常信息
作用:在程序开发初期会使用它进行测试,排除bug。
———————————————————————————————————————————
映射
hasattr( ) 作用:判断有没有这个属性。
否则:
———————————————————————————————————————————
getattr( ) 获取有属性的属性值,有则返回,没有则报错。
修改属性后,因为下面的截图没有sex这个属性,所以会报错。
———————————————————————————————————————————
setattr( ) 修改属性,没有则增加新属性,有则修改原来的旧属性
输出结果:
再次稍稍修改一下代码:
结果:
说明:setattr( )可以增加、修改属性值。(有则增,无则改)
———————————————————————————————————————————
delattr( ) 删除对应属性
sex这个属性因为被删除了,所以会报错,这是正常报错。
_____________________________________________________________________________
对象关系方法
issubclass( ) 判断前面这个类是不是后面这个类的子类
如果是,返回True,否则返回False。
hunan类是Person这个父类的子类
object是所有类的父类(简言之:它是老大)
———————————————————————————————————————————
还有这些方法:
isinstance( )判断实例是否是后面的实例对象
是则返回True,否则返回False
当然,这种方法还可以判断数据类型。
例如:
———————————————————————————————————————————
魔法方法
-----------------------------------------------------------------------------------------------------------------------------
———————————————————————————————————————————
![](https://i-blog.csdnimg.cn/blog_migrate/7dcb0e18a47c4571db3a8633784f2ccb.png)
|