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()) # 把堆栈信息记录在日志文件中

 

posted @ 2018-12-21 17:59  TNTsc  阅读(193)  评论(0编辑  收藏  举报