1.约束
1.抛出异常类:NotImplementedError
2.抽象类
当我们需要对子类进行约束:
1.抛出异常 NotImplementedError() 没有实现 -> 约定俗成. 多观察
2.写抽象类
from abc import ABCMeta, abstractmethod
class Base(metaclass = ABCMeta):
@abstractmethod
def 方法(self):
pass
如果一个类中包含了抽象方法. 那么这个类一定是一个抽象类
一个抽象类中可以包含正常的方法
接口: 接口中所有的方法都是抽象方法
子类必须重写父类中的抽象方法. 否则子类也是一个抽象类
2.异常处理
由python解释器来调用代码. 出现了错误. 系统会自动的产生一个叫异常的对象.
系统会尝试着把错误返回给调用方. 过程被称为:抛异常
我们通过try...except 可以吧系统产生的这个错误获取到. 过程叫捕获异常
自定义异常 慎用 名字一定要符合规范
3.日志处理
报错等级
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
import logging
# 创建⼀个操作⽇志的对象logger(依赖FileHandler)
file_handler = logging.FileHandler('zuo.log', 'a', encoding='utf-8')#文件助手
file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s"))
logger1 = logging.Logger('程序', level=20)#报错等级
logger1.addHandler(file_handler) # 把文件助手和日志对象绑定
logger1.error('我是A系统出错了') # 记录日志