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.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...
随机推荐
- code2
#include <unistd.h> #include <sys/syscall.h> #include <linux/kernel.h> #include &l ...
- markdown上下左右,跳至行尾行首,重设快捷键
概述 用markdown输入代码的时候觉得下面2件事非常不方便: (1)光标上下左右.(需要挪动手去按方向键) (2)光标跳至行尾和行首.(需要动手去按Home和End键) 为了简化,我特地更改了ST ...
- [git] 常用配置
基本配置 对git进行配置时使用 git config 命令进行操作 1. git config 的作用域,缺省等于 local git config --local #只针对某个仓库有效 git ...
- git关于文件权限修改引起的冲突及忽略文件权限的办法
我们在使用git进行版本管理的时候,有时候只是修改了文件的权限,比如将pack.php修改为777,但其实文件内容并没有改变,但是git会认为此文件做了修改,原因是git把文件权限也算作文件差异的一部 ...
- 卖给高通之后的CSR的现状和未来
转眼之间,CSR已经嫁给高通两年了,养在深宫大院大小妾的CSR,到底过的怎么样呢? 从高通官网上查看的结果显示,CSR产品被分成了三类: A 传统的用在耳机音响的CSR86XX系列,这部分改动不大,就 ...
- 一些java多线程的经验
多线程的时候,可以try--catch后再catch中加continue让程序继续运行(当然,前提是这个异常的数据不影响后续的操作)
- django model数据 时间格式
from datetime import datetime dt = datetime.now() print '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( ...
- 使用FluentMigrator进行数据库迁移
介绍 在开发的过程中,经常会遇到数据库结构变动(表新增.删除,表列新增.修改.删除等).开发环境.测试环境.正式环境都要记性同步:如果你使用EF有自动迁移的功能,还是挺方便的.如果非EF我们需要手工处 ...
- Spring Boot + Spring Cloud 构建微服务系统(三):服务消费和负载(Feign)
Spring Cloud Feign Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端.它使得编写Web服务客户端变得更加简单.我们只需要通过创建接口 ...
- 配置文件热加载的go语言实现
通常我们更新应用程序的配置文件,都需要手动重启程序或手动重新加载配置.假设一组服务部署在10台机器上,你需要借助批量运维工具执行重启命令,而且10台同时重启可能还会造成服务短暂不可用.要是更新配置后, ...