python之约束, 异常处理, md5

2018-12-24 09:06:03来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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('123456'.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('123456')) # b8de0312dbab0c85cba71b121456f98c
username = 'alex'
password = 'b8de0312dbab0c85cba71b121456f98c'
# 登陆
uname = input('请输入用户名:')
upwd = input('请输入你的密码:')
if uname == username and my_md5(upwd) == password:
    print('登陆成功')
else:
    print('登陆失败')

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:分支限界法---旅行售货员问题

下一篇:数据类型(集合)