• 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('登陆失败')
  • 相关阅读:
    Java技术之ThreadLocal的使用
    find and find_by
    vim-config
    把字符串当做js代码执行的方法
    lodop打印设计
    前端使用lodop如何获取打印状态
    lodop第三方插件的使用
    nodejs中http服务器,如何使用GET,POST请求发送数据、npm、以及一些插件的介绍
    nodejs 用http模块搭建的服务器的路由,以及路由代码的重构过程
    nodejs基础 用http模块 搭建一个简单的web服务器 响应JSON、html
  • 原文地址:https://www.cnblogs.com/q455674496/p/10156196.html
Copyright © 2020-2023  润新知