zoukankan      html  css  js  c++  java
  • 22 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('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('登陆失败')
  • 相关阅读:
    绘图小程序
    小型计算器
    水仙花数
    数据可视化溯源之<图形语法>
    canvas制作圆形动态加载进度实例
    关于HTML5视频标签的问题
    Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序
    CSS3过渡动画&关键帧动画
    100种图形设计参考
    img标签的before,after伪类
  • 原文地址:https://www.cnblogs.com/a2534786642/p/10157174.html
Copyright © 2011-2022 走看看