python之约束, 异常处理, md5
1. 类的约束
1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点)
2. 抽象类和抽象方法
# 语法
# from abc import ABCMeta, abstractmethod
# class Base(metaclass = ABCMeta):
# @abstractmethod
# def fangfa(self):pass # 抽象类
from abc import ABCMeta, abstractmethod
# 抽象类不能创建对象
class Animal(metaclass=ABCMeta): # 写完这个东西就是抽象类
@abstractmethod # 抽象方法
def chi(self): pass # 抽象类中是可以有正常的方法
def dong(self):
print('动物会动') # class Cat(Animal): # 此时猫里面也有一个抽象方法, 此时的猫是无法创建对象的
# pass
#
# c = Cat() # 此时是报错的 class Cat(Animal):
def chi(self): # 重写父类中的抽象方法
print('猫喜欢吃鱼') c = Cat()
c.chi() # 猫喜欢吃鱼
c.dong() # 动物会动
2. 异常处理.
# 语法格式
try:
# 代码
except 异常类:
# 除了错, 如何处理异常
except 异常类:
# 除了错, 如何处理异常
except 异常类:
# 除了错, 如何处理异常 else:
# 当程序不出错
finally:
# 不管出不出错, 都要执行
# 例
try:
print(1/0)
# f = open("哈哈哈哈哈", mode="r")
# d = {[]:123}
except ZeroDivisionError: # 可以处理所有错误
print("除以0出错了")
except FileNotFoundError:
print("文件不存在的错误")
except Exception: # 兜底的
print("其他错误")
else: # 当try中的代码不产生任何错误的时候. 会自动的执行else里的代码
pass
finally: # 最终. 不管出错还是不出错. 都要执行最后的finally 一般用来收尾
print("哈哈哈哈哈哈哈哈啊哈")
3. MD5
import hashlib # MD5需要导入这个模块
# 加密的内容(需要是字节类型)
obj = hashlib.md5(b'liuliuliuliuliuliu') # 加盐
obj.update(''.encode('utf-8')) # 把要加密的内容给md5
print(obj.hexdigest()) # 拿到密文b8de0312dbab0c85cba71b121456f98c
# 应用
def my_md5(s):
obj = hashlib.md5(b'liuliuliuliuliuliu') # 123456的MD5密文
obj.update(s.encode('utf-8'))
return obj.hexdigest()
print(my_md5('')) # b8de0312dbab0c85cba71b121456f98c
username = 'alex'
password = 'b8de0312dbab0c85cba71b121456f98c'
# 登陆
uname = input('请输入用户名:')
upwd = input('请输入你的密码:')
if uname == username and my_md5(upwd) == password:
print('登陆成功')
else:
print('登陆失败')
python之约束, 异常处理, md5的更多相关文章
- python --- 20 约束 异常处理 MD5 日志
一.类的约束 1.抛出异常 NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完后代码可继 ...
- Python面向对象(约束,异常处理,md5加密)(五)
1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError class Base: def login(self): raise NotImplemen ...
- 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理
一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...
- python之路--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
- python 面向对象(五)约束 异常处理 MD5 日志处理
###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...
- python 约束. 异常处理. MD5. 日志处理
一.约束 1.抛异常 # # 项目经理写的 class Base: # # 对子类进行了约束. 必须重写该方法 # # 以后上班了. 拿到公司代码之后. 发现了NotImplementedError ...
- python--类的约束,异常处理,MD5加密,日志处理logging模块
1.类的约束 在开发中,如果项目经理需要对类进行约束,可以有两种方式 1. 对子类进行约束 Base: #对子类进行约束,必须重写这个方法 # 在工作中发现了NotImplementedError之后 ...
- day 20 约束 异常处理 MD5
1.类的约束(重点): 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementError # 项目经理 class Base: # 对子类进行了约束. 必须重写该方法 ...
- 20 约束 异常处理 MD5 日志
三十九, 一.类的约束 1.抛出异常 NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...
随机推荐
- 自适应Simpson法与积分初步
前言 不知道为什么,今天感觉想要写一下数学的东西,然后就看了一下我还有这个模板不会,顺手写了一下. 没有学过微积分的最好还是看一下求导为好. 求导 听说很多人都不会求导,我写一下吧qwq 令\(f(x ...
- Android 开发常用版本控制命令
1. git 回退到指定版本 // 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdc ...
- 用HTML5 video标签插入视频,在谷歌浏览器上播放视频时,右下角显示的下载按钮怎么去掉
使用H5的video标签可以直接插入视频,一般在浏览器效果如下图显示: 但有时在谷歌浏览器上显示,会遇到右下角有下载按钮.如果项目要求去掉这个下载按钮,怎么办呢?如下图显示: 分析: 经本人测试,是谷 ...
- log4j 详细使用教程【转载】
日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...
- RabbitMQ服务端配置详解
RabbitMQ支持三种配置方式: 1) 读取环境变量中配置, 这包括shell中环境变量和rabbitmq-env.conf/rabbitmq-env-conf.bat文件中配置的环境变量 可配置如 ...
- Python集成开发工具Pycharm的使用方法:复制,撤销上一步....
复制行,在代码行光标后,输入Ctrl + d ,即为复制一行,输入多次即为复制多行 撤销上一步操作:Ctrl + z 为多行代码加注释# 代码选中的条件下,同时按住 Ctrl+/,被选中行被注释,再 ...
- vue项目打包上线时的配置操作
vue的图片路径,和背景图片路径打包后错误解决 2017-12-11 16:00 by muamaker, 7037 阅读, 0 评论, 收藏, 编辑 最近在研究vue,老实的按照官网提供的,搭建的了 ...
- 关于loading
在开发中,不可避免的会需要loading的出现,来提高用户体验, 自己在查找中,总结了两条: 1.window.onload的时候显示loading,首先loading图片是一直存在的,window. ...
- mysql 开发进阶篇系列 29 数据库二进制包安装
概述 对于二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql.缺点是已经绎过编译,性能不如源码编译得好,不能灵活定制编译参数.如果用户即不想安装最简单却不够灵活的RPM ...
- window下安装绿色版5.7
1. 在mysql的安装目录下创建my.ini,并配置必要参数. 2. 执行命令mysqld --initialize-insecure --basedir=/opt/mysql/mysql --d ...