python 中約束寫法有兩種 1 常用的通過繼承關係主動丟擲異常 2 通過抽象類+抽象方法
1 常用的通過繼承關係主動丟擲異常寫法
在本send方法中報錯不會丟擲異常,
class
basemessage
(object):
defsend
(self)
:"""
必須繼承basemessage,然後其中必須編寫send方法。用於完成具體業務邏輯。
"""raise notimplementederror(
".send() 必須被重寫."
)# 主動拋異常notimplementederror,用exception也行但顯得不專業
# raise exception(".send() 必須被重寫.")
class
email
(basemessage)
:# 繼承 basemessage 必須約束有send方法才行
defsend
(self)
:pass
# 傳送郵件類
deff1
(self)
:pass
deff2
(self)
:pass
class
wechat
(basemessage)
:# 繼承 basemessage 必須約束有send方法才行
defsend
(self)
:pass
deff1
(self)
:pass
basemessage類用於約束,約束其派生類:保證派生類中必須編寫send方法,不然執行可能就會報錯。
2 通過抽象類+抽象方法 (不常用因為編寫麻煩)
'''
'''from abc import abcmeta,abstractmethod
class
base
(metaclass=abcmeta)
:# 抽象類
deff1
(self)
:print
(123
) @abstractmethod # 抽象方法裝飾器
deff2
(self)
:# 抽象方法
pass
class
foo(base)
:def
f2(self)
:print
(666
)obj = foo(
)obj.f1(
)
加密
加密是不可逆的,為了防止撞庫 必須有加鹽操作
import hashlib # 匯入hashlib 模組
salt = b'2erer3asdfwerxdf34sdfsdfs90'
# 鹽 鹽必須是位元組碼
defmd5
(pwd)
:# 傳入密碼
# 例項化物件 加鹽
obj = hashlib.md5(salt)
# 寫入要加密的位元組
obj.update(pwd.encode(
'utf-8'))
# 獲取密文
return obj.hexdigest(
)# 21232f297a57a5a743894a0e4a801fc3 # 66fbdc0f98f68d69cd458b0cee975fe3
user =
input
("請輸入使用者名稱:"
)pwd =
input
("請輸入密碼:"
)if user ==
'oldboy'
and md5(pwd)
=='c5395258d82599e5f1bec3be1e4dea4a'
:print
('登入成功'
)else
:print
('登入失敗'
)
python約束 與MD5加密寫法
python 中約束寫法有兩種 常用的通過繼承關係主動丟擲異常 通過抽象類 抽象方法 1 常用的通過繼承關係主動丟擲異常寫法 在本send方法中報錯不會丟擲異常,class basemessage object defsend self 必須繼承basemessage,然後其中必須編寫send方法。...
MD5加密與python實現
全稱 md5訊息摘要演算法 英語 md5 message digest algorithm 一種被廣泛使用的密碼雜湊函式,可以產生出乙個128位 16位元組 的雜湊值 hash value 用於確保資訊傳輸完整一致。md5加密演算法是不可逆的,所以解密一般都是通過暴力窮舉方法,通過 的介面實現解密。...
python 使用md5加密
python中使用md5進行加密字串 author administrator coding utf 8 import hashlib aa 123456 需要加密的字串 defmd5encode str 建立md5物件 m hashlib.md5 m.update str 傳入需要加密的字串進行m...