類的約束,異常處理,MD5加密和日誌處理

1. 類的約束
  1. 寫一個父類. 父類中的某個方法要拋出一個異常 NotImplementedError (重點)python

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 異常類:
    除了錯, 如何處理異常debug

  *else:
    *當程序不出錯,執行操做
  finally:
    無論出不出錯, 都要執行日誌


  raise  > 異常類    >  ("信息")orm

  如何本身定義異常
  class 類(Exception):
    pass對象

  堆棧   (報錯的內容)blog

  import traceback
  traceback.format_exc()md5

3. MD5加密
  import hashlibutf-8

  obj = hashlib.md5(b'鹽')
  obj.update(b"要加密的內容")
  print(obj.hexdigest())hash


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)
相關文章
相關標籤/搜索