类的约束,异常处理,MD5加密和日志处理
1. 类的约束
1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点)
class Base:
def chi(self):
raise NotImplemented ("回家抱孩子吧")
class Base1(Base):
def chi(self):
print("晚上吃鲍鱼")
class Base2(Base):
def he(self):
print("喝点牛奶好吗")
def func(obj):
obj.chi()
b1 = Base1()
b2 = Base2()
func(b1)
func(b2) #会报错,抛出一个异常,因为b2中没有chi方法
2. 抽象类和抽象方法
from abc import ABCMeta, abstractmethod
class Base(metaclass = ABCMeta):
@abstractmethod
def fangfa(self):
pass
2. 异常处理. try except raise
try:
代码
except 异常类:
除了错, 如何处理异常
except 异常类:
除了错, 如何处理异常
except 异常类:
除了错, 如何处理异常
*else:
*当程序不出错,执行操作
finally:
不管出不出错, 都要执行
raise > 异常类 > ("信息")
如何自己定义异常
class 类(Exception):
pass
堆栈 (报错的内容)
import traceback
traceback.format_exc()
3. MD5加密
import hashlib
obj = hashlib.md5(b'盐')
obj.update(b"要加密的内容")
print(obj.hexdigest())
4. 日志处理 (不要记, 留一份, 侧重点在用)
等级: 写日志: logging.error ( 内容 ) ===>>> # 40 到达40级的,把需要添加的内容添加到日志中
critical: 50
error:40
warning:30
info:20
debug:10
import logging
# 配置好日志的处理, 默认就是GBK
logging.basicConfig(filename='x1.txt', # 把日志信息写入的文件名
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', # 时间的格式
level=30) # 当前配置表示 30以上的分数会被写入日件
import logging
# 创建一个操作日志的对象logger(依赖FileHandler)
file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') # 创建文件
file_handler.setFormatter(logging.Formatter(
fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")) # 设置日志文件的格式
logger1 = logging.Logger(s, level=10) # 创建一个日志文件处理对象, s是变量
logger1.addHandler(file_handler) # 把文件添加到日志
# 再创建⼀个操作⽇志的对象logger(依赖FileHandler)
file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
file_handler2.setFormatter(logging.Formatter(
fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
logger2 = logging.Logger(s, level=logging.DEBUG) #s 是一个变量
logger2.addHandler(file_handler2)
浙公网安备 33010602011771号