python之约束、加密及logging模块

一、什么是约束?

    在生活中的约束大概就是有什么原因,导致你不能做这件事情了,称之为约束。而在python中的约束是在当多个类中,都需要使用某些方法时,需要人为抛出异常或使用基类+异常处理来进行约束

 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可以人为抛出异常和抽象类+抽象方法来进行约束

二、加密机制

  我们的密码只有我们自己知道别人不知道,但是在python中密码的存在形式过于暴露,我们需要通过一种方法来将密码变得复杂并不可以被破解

1 import hashlib   # 首先要导入加密模块
2 
3 obj  = hashlib.md5(b"asdaoijso")     # 加盐,防止撞库现象,导致密码泄露
4 obj.update("admin".encode("utf-8"))        # 将要加密的字节编码并写入
5 
6 # 获取密文
7 print(obj.hexdigest())

三、logging模块相关

  在我们日常的生活中会有人写日记记录自己每天干了什么事情,当我们想不起来的时候可以翻一翻笔记再回想起来,而再python中也同样存在充当“日记本”的功能,那就是logging模块。

 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()
原文地址:https://www.cnblogs.com/qq631243523/p/9567122.html