一、什么是约束?

    在生活中的约束大概就是有什么原因,导致你不能做这件事情了,称之为约束。而在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. Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机 Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 Linux的桌面虚 ...

  2. MySQL 8中使用全文检索示例

    首先建议张册测试用的表test,并使用fulltext说明将title和body两列的数据加入全文检索的索引列中: drop table if exists test; create table te ...

  3. Difference between Process and thread?

    What are the differences between a process and a thread? How are they similar? How can 2 threads com ...

  4. 11点睛Spring4.1-Property Editor

    11.1 Propert Editor property editor是JavaBeans API的一项特性,用来字符和属性值之间的互相转换(如2014-03-02和Date类型的互相转换) spri ...

  5. Java基础教程:Java内存区域

    Java基础教程:Java内存区域 运行时数据区域 Java虚拟机在执行Java程序的过程种会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟 ...

  6. Data - 深入浅出学统计 - 上篇

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

  7. TCP/UDP网络编程调试助手下载

    下载地址:可能需要谷歌:软件干净,挺好用的,如果有更好的,欢迎留言! https://www.waveshare.com/wiki/File:TCP-UDP-Debug.7z

  8. 页面数据加载完成时,显示loading页面.数据加载完,loading隐藏.

    一,引入三个文件 jQuery版本使用 jQuery v1.7.1 jquery-easyui文件中,引入easyui-lang-zh_CN.js的js 做数据加载时使用jquery.blockui. ...

  9. [转帖]年经贴: ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器?

    ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器? https://www.cnbeta.com/articles/tech/899421.htm . 之前苹果的哥们说过 谁特别在意自己的软 ...

  10. MyBatis逆向工程生成配置 generator (生成pojo、mapper.xml、mapper.java)

    MyBatis逆向工程生成 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml ...