类的约束,异常处理,MD5加密和日志处理

1. 类的约束
  1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点)

class Base:
    def chi(self):
        raise NotImplemented ("回家抱孩子吧")
class Base1(Base):
    def chi(self):
        print("晚上吃鲍鱼")
class Base2(Base):
    def he(self):
        print("喝点牛奶好吗")
def func(obj):
    obj.chi()
b1 = Base1()
b2 = Base2()
func(b1)
func(b2)    #会报错,抛出一个异常,因为b2中没有chi方法

  


  2. 抽象类和抽象方法
    from abc import ABCMeta, abstractmethod
    class Base(metaclass = ABCMeta):
      @abstractmethod
      def fangfa(self):
      pass

2. 异常处理. try   except     raise
  try:              
    代码
  except 异常类:
    除了错, 如何处理异常
  except 异常类:
    除了错, 如何处理异常
  except 异常类:
    除了错, 如何处理异常

  *else:
    *当程序不出错,执行操作
  finally:
    不管出不出错, 都要执行


  raise  > 异常类    >  ("信息")

  如何自己定义异常
  class 类(Exception):
    pass

  堆栈   (报错的内容)

  import traceback
  traceback.format_exc()

3. MD5加密
  import hashlib

  obj = hashlib.md5(b'盐')
  obj.update(b"要加密的内容")
  print(obj.hexdigest())


4. 日志处理 (不要记, 留一份, 侧重点在用)  
  等级:        写日志:  logging.error ( 内容 )     ===>>> # 40    到达40级的,把需要添加的内容添加到日志中
    critical: 50
    error:40
    warning:30
    info:20
    debug:10

import logging
# 配置好日志的处理, 默认就是GBK
logging.basicConfig(filename='x1.txt', # 把日志信息写入的文件名
                    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S', # 时间的格式
                    level=30) # 当前配置表示 30以上的分数会被写入日件

  

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(s, level=10) # 创建一个日志文件处理对象, s是变量
logger1.addHandler(file_handler) # 把文件添加到日志


# 再创建⼀个操作⽇志的对象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(s, level=logging.DEBUG)  #s 是一个变量
logger2.addHandler(file_handler2)

  

posted on 2018-12-21 16:04  哎呀!土豆  阅读(95)  评论(0编辑  收藏  举报

导航