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

时间: 2024-11-10 10:36:14

python之约束、加密及logging模块的相关文章

python避坑指南02——logging模块日志重复打印问题

目录 [TOC] 一.问题抛出 python的logging模块是python使用过程中打印日志的利器.我们可以使用logging模块的logger.Handler.formatter对我们的日志进行封装,指定日志输出的路径.格式以及位置.在声明logger的时候可以传一个字符串作为这个logger的标签.一直以为这个logger是以单例对象的设计模式设计的,只要这个标签名是一样的,那么返回的logger就是同一个.在打印日志的时候,想要实现日志分层,定义类如下函数来封装日志打印函数(由于源代码

python学习第五十二天logging模块的使用

很多程序都有记录日志的需求,并且日志包含的信息即有正常的程序访问日志,还可能有错误,警告等信息输出,python的 logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分debug(),info() warning() error() and critical()个级别,下面我们看一下怎么用 import logging logging.warning("www.96net.com.cn") logging,critical("ww

Python之日志处理(logging模块)

本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添加上下文信息 参考文档 一.日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变量数据的消息来描述.此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)

Python数据库 6.datetime与logging模块

6.1 datetime模块 datetime是python处理时间和日期的标准库 类名         功能说明?date 日期对象,常用的属性有year, month, day?time 时间对象hour,minute,second,毫秒?datetime 日期时间对象,常用的属性有hour, minute, second, microsecond?timedelta 时间间隔,即两个时间点之间的长度 主要使用: datetime.datetiem( ) . datetime.timedel

Python中的日志管理Logging模块

1.基本的用法 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印: WARNING:root:This is warning message 默认情况下,logging将日志打印到屏幕,日志级别为WARNING:日志级别大小关系为:CRITICAL > ERROR >

python+Appium自动化:日志logging模块

日志级别 debug.info.warn.error.critical五个级别 logging模块构成(四部分) logger(记录器,用于日志采集) Handler(处理器,将日志记录发送到合适的路径) Filter(过滤器,提供了更好的粒度控制,决定输出哪些日志记录) Formatter(格式化起,指明了日志的格式) logger(记录器) 在使用debug.info.warn.error.critical五个级别之前创建logging实例 方法:basicConfig()为日志记录系统做基

python 的日志logging模块学习

最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # -*- cod

Python中的logging模块

http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,