python 约束. 异常处理. MD5. 日志处理
一.约束
1.抛异常
# # 项目经理写的
class Base:
# # 对子类进行了约束. 必须重写该方法
# # 以后上班了. 拿到公司代码之后. 发现了NotImplementedError 继承他, 直接重写他
def login(self):
raise NotImplementedError("你要重写一下longin这个方法. 否则报错!") # 抛异常
#
# # 自己写的
class Member(Base):
def login(self):
print('我是普通人登录') class BaWu(Base):
def login(self):
print('吧务登录') class Houtai(Base):
# def denglu(self): # 报错, 上层程序员写代码没有按照规范来 # NotImplementedError: 你要重写一下longin这个方法. 否则报错!
# print('后台登录') def login(self): # 正确版 # 把上面的denglu 改成 login 才是正确的不会报错
print('后台登录')
2.抽象类和抽象方法
# 抽象方法不需要给出具体的方法体. 抽象方法内只写一个pass就可以了
# 在一个类中如果一个方法是抽象方法. 那么这个类一定是一个抽象类
# 抽象类中. 如果有抽象方法. 此时这个类不能创建对象
# 如果一个类中所有的方法都是抽象方法. 这个类可以被称为接口类 # 写一个抽象方法: 导入一个模块
from abc import ABCMeta,abstractmethod # 此时抽象类不能创建对象
class Animal(metaclass= ABCMeta): # 写完这个东西. 就是个抽象类 @abstractmethod
def chi(self):
pass # 抽象类中可以有正常的方法
def dong(self):
print('动物会动') # class cat(Animal): #此时猫里面也有一个抽象方法, 此时的猫是创建不了对象的
# pass class cat(Animal):
def chi(self): # 重写父类中的抽象方法
print('猫喜欢吃鱼') c =cat()
c.chi()
c.dong()
二.异常处理
try:
print(1/10)
f = open('哈哈哈哈',mode='r')
d = {[]:123}
except ZeroDivisionError:
print('除以0出错了')
except FileNotFoundError: # 处理完错误后就不往下走了
print('文件不存在的错误')
except Exception: # 兜底的 能处理所有错误
print('其他错误') else: # 当try中的代码不产生任何错误的时候. 会自动的执行else里的代码 基本没什么用 都直接写try里了
pass finally: # 最终. 不管出错还是不出错. 都要执行最后的finally 一般用来收尾 以后数据连接还有各种连接用来断开连接用
print('哈哈哈哈哈')
如何自己定义异常
随便写一个类. 这个类只要继承了Exception 这个类就是一个异常类就可以作为raise对象
class CulException(Exception):
pass # 如何手动抛出异常
def cul(a,b):
# 只能是数字相加
if (type(a) == int or type(a) == float) and (type(b) == int or type(b) == float):
return a + b else:
# 抛出异常
# raise 异常类(错误信息)
raise CulException('我没有办法给你处理这样的运算') print(cul('就是不放',2))
三.MD5
import hashlib # md5对象 obj = hashlib.md5(b'qweqws') # 加盐
obj.update(''.encode('utf-8')) # 把要加密的内容给Md5
print(obj.hexdigest()) # 拿到密文 d2a43a16b3a92a620c4a769ed2d7b45c
四.日志处理
(1)单个日志
import logging #
# 配置好日志的处理, 默认就是GBK
logging.basicConfig(filename='x1.txt', # 把日志信息写入的文件名
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', # 时间的格式
level=10) # 当前配置表示 10以上的分数会被写入日件 # 向日志文件写内容
logging.critical('今天嫂子没有来') # 50, 几乎是最高的 level = 50
logging.error('昨天嫂子来了') # 40 平时使用最多的就是他
logging.warning('还好吧') # 30 警告
logging.info('提示') # 20 提示
logging.debug('开发的时候把这个开着') #
logging.log(999, '宝宝今天又懵逼了') # 999 是自定义的等级 后面的是内容
(2)多个日志
import logging # 创建一个操作日志的对象logger(依赖FileHandler)
file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') # 创建文件
file_handler.setFormatter(logging.Formatter(
fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")) # 设置日志文件的格式
logger1 = logging.Logger('腾讯qq', level=10) # 创建一个日志文件处理对象
logger1.addHandler(file_handler) logger1.error("麻花藤明天请大家吃饭. 去不去?") # # 再创建⼀个操作⽇志的对象logger(依赖FileHandler)
# file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
# file_handler2.setFormatter(logging.Formatter(
# fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
# logger2 = logging.Logger('百度贴吧', level=logging.DEBUG)
# logger2.addHandler(file_handler2)
#
# logger2.error("我才不去呢. 我们在北京. 离你那么远")
python 约束. 异常处理. MD5. 日志处理的更多相关文章
- 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理
一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...
- python之路--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
- python 面向对象(五)约束 异常处理 MD5 日志处理
###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...
- python --- 20 约束 异常处理 MD5 日志
一.类的约束 1.抛出异常 NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完后代码可继 ...
- 20 约束 异常处理 MD5 日志
三十九, 一.类的约束 1.抛出异常 NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...
- python约束 异常 MD5 日志处理
一.约束 1.用父类执行约束 子类继承父类,用重写方法,对子类的方法进行约束. class Foo: def login(self): # 对子类进行约束,该方法需要重写 # 没有执行的错误 rais ...
- python--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
- python--类的约束,异常处理,MD5加密,日志处理logging模块
1.类的约束 在开发中,如果项目经理需要对类进行约束,可以有两种方式 1. 对子类进行约束 Base: #对子类进行约束,必须重写这个方法 # 在工作中发现了NotImplementedError之后 ...
- Python面向对象(约束,异常处理,md5加密)(五)
1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError class Base: def login(self): raise NotImplemen ...
随机推荐
- 读书笔记--Head First Ajax 目录
1.使用Ajax 2.设计Ajax 3.javascripte事件 4.多个事件处理程序 5.异步应用 6.文档对象模型 7.管理DOM 8.框架与工具包 9.xml请求与响应 10.json 11. ...
- 在多版本python的pip的安装与对应包的安装
最近花了好长时间在搞这个,由于Deepin下python有两个版本,并且都没有安装pip,之前的博文默认安装pip给python2.7,结果各种问题,在此将之前走过的弯路整合起来: 首先,安装pip ...
- IO流9 --- 使用FileInputStream和FileOutputStream读写非文本文件 --- 技术搬运工(尚硅谷)
字节流读写非文本文件(图片.视频等) @Test public void test5(){ File srcFile = new File("FLAMING MOUNTAIN.JPG&quo ...
- PYTHON网络爬虫与信息提取[BeautifulSoup](单元四)
1 简介 from bs4 import BeautifulSoup soup=BeautifulSoup(<p>data</p>,'html.parser') 2 基本元素 ...
- 二零一七年工作中常用的基本Linux命令记录(Ubuntu)
Linux命令如下(Ubuntu): 1. apt-get install openssh-server 下载远程工具 2. apt-get install lrzsz 上传下载工具 3. apt-g ...
- 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】
[题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...
- day38 10-Spring的Bean的属性的注入
后处理bean,如果是返回bean,那么什么都不做直接把这个类原封不动地给你返回回去. 在它执行一些逻辑方法的时候对它进行逻辑增强,比如说进行时间监控,权限管理,日志的记录等等. 要做肯定是对正常的类 ...
- 解决git的the remote end hung up问题_百度经验
使用git更新或提交中途有时出现The remote end hung up unexpectedly的异常,特别是资源库在国外的情况下.此问题可能由网络原因引起. 工具/原料 git 方法/步骤 ...
- git之操作准则
每天下班前合一次代码,每次合代码先pull 不要多人同时修改同一个文件,避免冲突 在每个人自己的分支进行开发,先合并到dev分支解决冲突,确认无冲突后再合并到master
- 【python之路16】作业
#!usr/bin/env python # -*- coding:utf-8 -*- # 数据库中原有 old_dict = { "#1": {'hostname': 'c1', ...