• 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()
  • 相关阅读:
    java
    JAVA的String 类
    JAVA的StringBuffer类
    TestLink 的使用详解
    Vertrigo Serv + testlink 环境搭建
    自动化测试全聚合
    selenium -文件上传的实现 -对于含有input element的上传
    chrome启动参数设置
    selenium
    java
  • 原文地址:https://www.cnblogs.com/qq631243523/p/9567122.html
Copyright © 2020-2023  润新知