標籤:四級 orm 子類 evel critical 筆記 round 異常 hash
一、什麼是約束?
在生活中的約束大概就是有什麼原因,導致你不能做這件事情了,稱之為約束。而在python中的約束是在當多個類中,都需要使用某些方法時,需要人為拋出異常或使用基類+異常處理來進行約束
1 class BaseMessage: 2 def send(self): 3 raise NotImplementedError("send必須被重寫") 4 # 約束潛規則, 子類必須有send方法 否則主動拋異常 5 class Msg(BaseMessage): 6 def send(self): 7 print("傳送簡訊") 8 pass 9 10 11 def func(arg):12 arg.send()13 obj = Msg()14 func(obj)15 16 17 通過抽象方法,抽象類別來進行約束18 from abc import ABCMeta,abstractmethod19 20 class Base(metaclass=ABCMeta):21 def f1(self):22 print("3")23 @abstractmethod24 def f2(self):25 pass26 class Foo(Base):27 def f2(self):28 print(66)29 obj = Foo()30 obj.f1()31 obj.f2()32 33 當多個類中,都需要使用某些方法時,需要使用基類+異常處理來進行約束34 總結: python可以人為拋出異常和抽象類別+抽象方法來進行約束
二、加密機制
我們的密碼只有我們自己知道別人不知道,但是在python中密碼的存在形式過於暴露,我們需要通過一種方法來將密碼變得複雜並不可以被破解
1 import hashlib # 首先要匯入加密模組2 3 obj = hashlib.md5(b"asdaoijso") # 加鹽,防止撞庫現象,導緻密碼泄露4 obj.update("admin".encode("utf-8")) # 將要加密的位元組編碼並寫入5 6 # 擷取密文7 print(obj.hexdigest())
三、logging模組相關
在我們日常的生活中會有人寫日記記錄自己每天幹了什麼事情,當我們想不起來的時候可以翻一翻筆記再回想起來,而再python中也同樣存在充當“日記本”的功能,那就是logging模組。
1 日誌相關 2 import logging 3 import traceback 4 5 logger = logging.basicConfig(filename="log.txt", 6 format="%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s", 7 datefmt ="%Y-%m-%d %H:%M:%S", 8 level=10 9 )10 logging.debug("一級異常") level=1011 logging.info("二級異常") level=2012 logging.warning("三級異常") level=3013 logging.error("四級異常") level=4014 logging.critical("最高異常") level=5015 16 def func():17 try:18 a = a+119 except Exception as e:20 print(logging.error(traceback.format_exc())) #擷取當前錯誤的堆棧資訊21 func()
python之約束、加密及logging模組