8-1 模块和异常处理
一 模块
1
# 模块总结
# 能不能导入模块 : 用sys.path查看
# 导入模块的顺序 : 内置 扩展 自定义
# 导入模块 : 相当于执行了这个模块,文件中的名字会被存储在一块独立的内存空间中
# import
# 在全局创建了一个模块名,指向属于这个模块的命名空间
# 空间里存储了所有文件中的名字
# 起别名 import ... as ..
# 不推荐一行导入多个模块
# from import
# import后面的名字会出现在全局 ,相当于对独立命名空间中的一个引用
# from import 也支持 as语句 也支持 导入多个名字
# from import * 相当于导入所有名字,*和被导入模块__all__是互相影响的
2 绝对导入和相对导入
在glance同级目录下可以导入下面的命令:
1 import glance #绝对导入,其余的在init文件里面实现 2 #在glace里面的init文件里写的:from glance import api 3 #在api里面的init文件里写的:from glance.api import policy 4 glance.api.policy.get() 5 6 7 相对导入 8 9 import glance 10 #在glace里面的init文件里写的:from . import api 11 #在api里面的init文件里写的:from .import policy 12 glance.api.policy.get()
二 异常处理
1 #多分枝 2 # s1 = 'hello' 3 # try: 4 # int(s1) 5 # except IndexError as e: 6 # print(e) 7 # except KeyError as e: 8 # print(e) 9 # except ValueError as e: 10 # print(e)
1 #万能异常 2 # 3 # # s1 = 'hello' 4 # try: 5 # int(s1) 6 # except Exception as e: 7 # print(e)
1 #常用的处理异常结构 2 try: 3 pass #可能有问题的代码 4 except ValueError: # 能预料到的错误 5 pass 6 except Exception as e:print(e) # 能处理错有的异常 7 else:pass # try中的代码没有错误的时候执行 8 finally:pass #无论如何都执行
#主动触发异常 # try: # raise TypeError('类型错误') # except Exception as e: # print(e)
1 #断言 assert 2 assert 1==1 3 print('ok') 4 # assert 1==2 5 # print('error')