python之约束、加密及logging模块
2021-07-09 08:07
标签:四级 orm 子类 evel critical 笔记 round 异常 hash 一、什么是约束? 在生活中的约束大概就是有什么原因,导致你不能做这件事情了,称之为约束。而在python中的约束是在当多个类中,都需要使用某些方法时,需要人为抛出异常或使用基类+异常处理来进行约束 二、加密机制 我们的密码只有我们自己知道别人不知道,但是在python中密码的存在形式过于暴露,我们需要通过一种方法来将密码变得复杂并不可以被破解 三、logging模块相关 在我们日常的生活中会有人写日记记录自己每天干了什么事情,当我们想不起来的时候可以翻一翻笔记再回想起来,而再python中也同样存在充当“日记本”的功能,那就是logging模块。 python之约束、加密及logging模块 标签:四级 orm 子类 evel critical 笔记 round 异常 hash 原文地址:https://www.cnblogs.com/qq631243523/p/9567122.html 1 class BaseMessage:
2 def send(self):
3 raise NotImplementedError("send必须被重写")
4 # 约束潜规则, 子类必须有send方法 否则主动抛异常
5 class Msg(BaseMessage):
6 def send(self):
7 print("发送短信")
8 pass
9
10
11 def func(arg):
12 arg.send()
13 obj = Msg()
14 func(obj)
15
16
17 通过抽象方法,抽象类来进行约束
18 from abc import ABCMeta,abstractmethod
19
20 class Base(metaclass=ABCMeta):
21 def f1(self):
22 print("3")
23 @abstractmethod
24 def f2(self):
25 pass
26 class Foo(Base):
27 def f2(self):
28 print(66)
29 obj = Foo()
30 obj.f1()
31 obj.f2()
32
33 当多个类中,都需要使用某些方法时,需要使用基类+异常处理来进行约束
34 总结: python可以人为抛出异常和抽象类+抽象方法来进行约束
1 import hashlib # 首先要导入加密模块
2
3 obj = hashlib.md5(b"asdaoijso") # 加盐,防止撞库现象,导致密码泄露
4 obj.update("admin".encode("utf-8")) # 将要加密的字节编码并写入
5
6 # 获取密文
7 print(obj.hexdigest())
1 日志相关
2 import logging
3 import traceback
4
5 logger = logging.basicConfig(filename="log.txt",
6 format="%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s",
7 datefmt ="%Y-%m-%d %H:%M:%S",
8 level=10
9 )
10 logging.debug("一级异常") level=10
11 logging.info("二级异常") level=20
12 logging.warning("三级异常") level=30
13 logging.error("四级异常") level=40
14 logging.critical("最高异常") level=50
15
16 def func():
17 try:
18 a = a+1
19 except Exception as e:
20 print(logging.error(traceback.format_exc())) #获取当前错误的堆栈信息
21 func()
上一篇:Python基础学习(四)