本节内容:
 

其他相关

一、isinstance(obj, cls)

 检查是否obj是否是类 cls 的对象

注:isinstance(obj, cls) 检查obj是否是cls类(包括父类)的实例对象

       type(obj, cls) 检查obj是否是cls类(不包括父类)的实例对象

1
2
3
4
5
6
class Foo(object):
    pass
 
obj = Foo()
 
isinstance(obj, Foo)

二、issubclass(sub, super)

检查sub类是否是 super 类的派生类

1
2
3
4
5
6
7
class Foo(object):
    pass
 
class Bar(Foo):
    pass
 
issubclass(Bar, Foo)

三、异常处理

1、异常基础

在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!

1
2
3
4
try:
    pass
except Exception as e:
    pass
面向对象及相关
 1 # try:
 2 #     pass
 3 # except (ValueError,IndexError):
 4 #     print('针对性的处理')
 5 # except Exception as e:
 6 #     print(e)
 7 #     print('通用性的处理')
 8 # else:  # 当try中的代码不发生异常的时候 走else分支
 9 #     print('else')
10 # finally: # 无论如何都会被执行
11 #     print('finally')
12 
13 # def func():
14 #     f = open('file')
15 #     try:
16 #         while True:
17 #             for line in f:
18 #                 if line.startswith('a'):
19 #                     return line
20 #     except:
21 #         print('异常处理')
22 #     finally:   # 即使return也会先执行fianlly中的代码
23 #         f.close()
24 
25 # try:
26 #     f = open('www','w')
27 #     f.read()
28 # finally:   # 即使遇到报错,程序结束,也会先执行finally中的代码,然后再结束程序
29 #     f.close()
30 #     print('文件已经关闭了')
31 
32 # finally用来回收一些操作系统的资源 : 数据库连接 打开的文件句柄 网络连接
33 
34 # 异常处理的几种情况
35 # try ... except
36 # try ... except ... else
37 # try ... finally
38 # try ... except ... finally
39 # try ... except ... else ... finally
40 
41 # 异常处理的忠告,在最外层的异常处理应该在所有的开发结束之后才放
注意

需求:将用户输入的两个数字相加

面向对象及相关
 1 while True:
 2     num1 = raw_input('num1:')
 3     num2 = raw_input('num2:')
 4     try:
 5         num1 = int(num1)
 6         num2 = int(num2)
 7         result = num1 + num2
 8     except Exception as e:
 9         print('出现异常,信息如下:')
10         print(e)
View Code

2、异常种类

python中的异常种类非常多,每个异常专门用于处理某一项异常!!!

面向对象及相关
 1 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
 2 IOError 输入/输出异常;基本上是无法打开文件
 3 ImportError 无法引入模块或包;基本上是路径问题或名称错误
 4 IndentationError 语法错误(的子类) ;代码没有正确对齐
 5 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
 6 KeyError 试图访问字典里不存在的键
 7 KeyboardInterrupt Ctrl+C被按下
 8 NameError 使用一个还未被赋予对象的变量
 9 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
10 TypeError 传入对象类型与要求的不符合
11 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
12 导致你以为正在访问它
13 ValueError 传入一个调用者不期望的值,即使值的类型是正确的
常用异常

相关文章:

  • 2022-12-23
  • 2021-07-03
  • 2021-10-14
  • 2022-12-23
  • 2021-10-15
  • 2021-08-07
  • 2021-11-24
  • 2021-07-11
猜你喜欢
  • 2022-12-23
  • 2021-11-18
  • 2021-08-07
相关资源
相似解决方案