一、什么是约束?

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

 class BaseMessage:
def send(self):
raise NotImplementedError("send必须被重写")
# 约束潜规则, 子类必须有send方法 否则主动抛异常
class Msg(BaseMessage):
def send(self):
print("发送短信")
pass def func(arg):
arg.send()
obj = Msg()
func(obj) 通过抽象方法,抽象类来进行约束
from abc import ABCMeta,abstractmethod class Base(metaclass=ABCMeta):
def f1(self):
print("")
@abstractmethod
def f2(self):
pass
class Foo(Base):
def f2(self):
print(66)
obj = Foo()
obj.f1()
obj.f2() 当多个类中,都需要使用某些方法时,需要使用基类+异常处理来进行约束
总结: python可以人为抛出异常和抽象类+抽象方法来进行约束

二、加密机制

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

 import hashlib   # 首先要导入加密模块

 obj  = hashlib.md5(b"asdaoijso")     # 加盐,防止撞库现象,导致密码泄露
obj.update("admin".encode("utf-8")) # 将要加密的字节编码并写入 # 获取密文
print(obj.hexdigest())

三、logging模块相关

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

 日志相关
import logging
import traceback logger = logging.basicConfig(filename="log.txt",
format="%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s",
datefmt ="%Y-%m-%d %H:%M:%S",
level=10
)
logging.debug("一级异常") level=10
logging.info("二级异常") level=20
logging.warning("三级异常") level=30
logging.error("四级异常") level=40
logging.critical("最高异常") level=50 def func():
try:
a = a+1
except Exception as e:
print(logging.error(traceback.format_exc())) #获取当前错误的堆栈信息
func()

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

  1. 【转】Python之日志处理(logging模块)

    [转]Python之日志处理(logging模块) 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging ...

  2. Python之日志处理(logging模块)《转载》

    Python之日志处理(logging模块): https://www.cnblogs.com/yyds/p/6901864.html

  3. Python之日志处理(logging模块)

    本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日 ...

  4. 优雅地记录Python程序日志1:logging模块简介

    本文摘自:https://zhuanlan.zhihu.com/p/31893724 本篇涉及: logging模块的调用: 保存log日志为文件: 调整输入日志等级: 修改日志消息格式: 前言 在使 ...

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

    很多程序都有记录日志的需求,并且日志包含的信息即有正常的程序访问日志,还可能有错误,警告等信息输出,python的 logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  6. Python之日志处理(logging模块)转载

    本人主要做一个知识的归类与记录,如是转载类文章,居首都会备注原链接,尊重原创者,谢谢! 此文转载原链接:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 ...

  7. Python之日志处理(logging模块一基础)

    转载自:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logg ...

  8. Python中的日志管理Logging模块

    1.基本的用法 import logging logging.debug('This is debug message') logging.info('This is info message') l ...

  9. python基础之包与logging模块

    包 1.什么是包? 包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹 2.为什么要有包? 提高程序的结构性和可维护性 3.如何使用包? 导入包就是在导包下的__init__. ...

随机推荐

  1. ABAP DEMO 下拉框

    效果展示: *&---------------------------------------------------------------------* *& Report YCX ...

  2. C#操作Access时Parameters集合的使用方法(转)

    按照C#操作Sql Server数据库的方式是不一样的,使用时发现占位符数据会混乱. 查阅相关资料及测试后,总结出这样一套使用方法. 方法: public bool TsqlExecute(strin ...

  3. HTML布局水平导航条2制作

    前两个博文导航条都不是铺满水平的浏览器的,很多导航条样式都是随着浏览器的移动,是100%.此外前两个博文导航条都是块状点击的,也就是给a标签加宽高,设置成块状显示,点击的时候不一定要点文字,只要点击该 ...

  4. [lodop]css样式after、before添加content内容之前和之后

    css样式可以在内容之前和之后加内容.格式是:css类名:before{content:在之前加的内容}css类名:after{content:在之后加的内容}这种写法在LODOP里直接测试是不行的, ...

  5. Data - 深入浅出学统计 - 下篇

    本文是已读书籍的内容摘要,少部分有轻微改动,但不影响原文表达. :以漫画形式来讲解最基本的统计概念和方法. ISBN: 9787121299636 https://book.douban.com/su ...

  6. 【计算机视觉】基于局部二值相似性模式(LBSP)的运动目标检测算法

    基于局部二值相似性模式(LBSP)的运动目标检测算法 kezunhai@gmail.com http://blog.csdn.net/kezunhai 本文根据论文:Improving backgro ...

  7. 方法重载overload与方法重写overwrite

    方法重载overload: 在同一个类中,出现相同的方法名,与返回值无关,参数列表不同:1参数的个数不同 2参数类型不同 在调用方法时,java虚拟机会通过参数列表来区分不同同名的方法 方法重写ove ...

  8. ListView控件的理解——自洽理论

    写在前面的话: *标题中已经说明,是自洽理论.因此,有几率会有理解错误.但是,你不可以因此骂我. -我这个人经不起别人的批评,如果你批评我,我就,我就.... ## <第一行代码>读书笔记 ...

  9. Python29之字符str与字节bytes

    详解见这位大神:https://www.cnblogs.com/xiaobingqianrui/p/9870480.html 实际上字符串和字节之间的转换过程,就是编码解码的过程,我们必须显示的指定编 ...

  10. Hello World详解

    Hello World 题目 [题目描述] 输出“Hello World!”(不输出“”). [输入格式] 啥都没有. [输出格式] Hello World! [数据规模] 输出就行了,管那么多干什么 ...