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)