zoukankan      html  css  js  c++  java
  • python --- 20 约束 异常处理 MD5 日志

    一.类的约束

      1.抛出异常    NotImplementedError  

      2.抽象方法  

        含有抽象方法的类是抽象类

        抽象类中的方法全是抽象方法的是接口

        抽象类不能创建对象

     

    二.异常处理

      处理完后代码可继续运行

      所有异常的根是Exception

      1.基本语法

     

      2.自定义异常    (继承Exception异常的根)

      自定义异常  加 异常处理

      3.堆栈信息(显示错误信息的具体位置)

      需引入模块

      

        

    三.MD5加密   不可逆

      固定格式:

     应用:

    四.日志

      1.

      

    # 基本的日志框架

    import logging import traceback logging.basicConfig(filename
    ='x1.txt', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=40) def login(): try: print("登录验证") print(1/0) except Exception as e: logging.error(traceback.format_exc()) login()

     2.⼀个⼤项⽬, 有两个⼦系统, 那两个⼦系统要分开记录

    import logging
    
    
    # 创建一个操作日志的对象logger(依赖FileHandler)
    file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') # 创建文件
    file_handler.setFormatter(logging.Formatter(
        fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")) # 设置日志文件的格式
    logger1 = logging.Logger('腾讯qq', level=10) # 创建一个日志文件处理对象
    logger1.addHandler(file_handler) # 把文件添加到日志
    
    logger1.error("麻花藤明天请大家吃饭. 去不去?")
    
    
    # 再创建⼀个操作⽇志的对象logger(依赖FileHandler)
    file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8')
    file_handler2.setFormatter(logging.Formatter(
        fmt="%(asctime)s - %(name)s -%(levelname)s -%(module)s: %(message)s"))
    logger2 = logging.Logger('百度贴吧', level=logging.DEBUG)
    logger2.addHandler(file_handler2)
    
    logger2.error("我才不去呢. 我们在北京. 离你那么远")
    
    
    import traceback
    
    class GenderException(Exception):
        pass
    
    
    class Person:
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
            logger1.info(f"这个人的名字是{self.name}, 这个人的性别是:{self.gender}")
    
        def xizao(self):
            print(f"{self.name}在洗澡")
    
    class ZaoTang:
    
        def nan(self, ren):
            if ren.gender == "":
                ren.xizao()
            else:
                raise GenderException("我这里要的是男人")
    
        def nv(self, ren):
            if ren.gender == "":
                ren.xizao()
            else:
                raise GenderException("我这里要的是女人")
    
    
    try:
        p1 = Person("赵亚磊", "")
        p2 = Person("林志玲", "")
        zaotang = ZaoTang()
        zaotang.nan(p2)
        zaotang.nv(p1)
    except GenderException:
        print("走错屋里了")
        logger1.error("走错屋了.. ")
        logger1.error(traceback.format_exc()) # 把堆栈信息记录在日志文件中
  • 相关阅读:
    UVALive-3989 Ladies' Choice (稳定婚姻问题)
    UVA-11383 Golden Tiger Claw (KM算法)
    UVA-10816 Travel in Desert (最小瓶颈最短路)
    UVA-10369 Arctic Network (最小生成树)
    内核态信号量(todo)
    openBMC(todo)
    uboot on qemu
    install ubuntu iso on windows
    在qemu上运行linux
    todo:register_sysctl_table
  • 原文地址:https://www.cnblogs.com/sc-1067178406/p/10157277.html
Copyright © 2011-2022 走看看