约束和异常处理 20
异常处理(处理,抛出异常,自定义异常)
1. 产生异常, raise 异常类(), 抛出异常
2.处理异常:
try:
xxxx # 尝试执行的代码
except 异常类 as 变量 : 出现错误的时候,捕获到异常
xxxx # 处理异常
3.自定义异常
继承 Exception 随便创建个类,继承Exception
4. 堆栈信息
import traceback
traceback.format_exc() 获取堆栈信息
约束(难)
约束是对子类进行的约束
一 . 通过抛异常(简单)
在父类中给出一个方法 这个方法中什么都不写 . 就抛异常 . NotImplementError()
# 重写 子类对父类提供的方法不满意. 重新定义这个方法
重写 子类重新定义父类中的方法.
通过抛异常实现约束
二 . 抽象类和抽象方法(Java,C#)
接口 : 类中都是抽象方法 .
from abc import ABCMeta, abstractmethod
抽象方法 : 抽象方法不用给出方法体 . 写个pass 就行了
抽象类:
语法 : 类(metaclass = ABCMeta)
概念 : 如果类中包含了抽象方法 这个类一定是抽象类
特点 : 抽象类一般不创建对象.
抽象类中可以存在正常方法
可以约束子类必须实现抽象方法
MD5加密
MD5加密: 不可逆
引入模块 hashlib
1 创建md5对象 (import hashlib)
2 把加密信息交给md5对象 (obj) = hashlib Md5(b'盐')
3 获取密文 obj.hexdigest
日志处理(重要, 简单)
引入 logging模块
简单配置即可(basicConifg 单一日志文件 fileHandler 文件助手可实现多文件操作)
日志级别:
CRITICAL 最高级别
ERROR 40
WARN 30
INFO 20
DEBUG 10
NOTSET 0
日志处理