#登陸驗證:如果沒喲登陸,則提示登陸
message =
deflogin(f):
def inner(*args, **kwargs):
'''被裝飾函式執行之前的操作'''
if message["
status"]:
ret = f(*args, **kwargs)
return
ret
else
: name = input("
輸入帳戶")
password = input("
輸入密碼")
with open(
"info.txt
", mode="
r", encoding="
utf-8
") as f1:
for line in
f1: user, pwd = line.split("|"
)
print("
-----
", user, pwd,type(user),type(pwd))
if name == user.strip() and password ==pwd.strip():
message[
"name
"] =name
message[
"status
"] =true
print("
跳轉中。。。")
ret = f(*args, **kwargs)
return
ret
else
:
print("
登陸失敗")
return
inner
@login
defarticl():
print("
訪問文章頁面")
@login
defneirong():
print("
訪問內容也頁面")
@login
defzhuye():
print("
訪問個人主頁頁面")
zhuye()
neirong()
articl()
結果顯示:
輸入帳戶xumou輸入密碼123
----- xumou 123 'str
'> 'str
'>跳轉中。。。
訪問個人主頁頁面
訪問內容也頁面
訪問文章頁面
實現乙個簡單的裝飾器
下面示例定義了乙個裝飾器,它會在每次呼叫被裝飾的函式時計時,然後把經過的時間 傳入的引數和呼叫的結果列印出來。import time defclock func def clocked args t0 time.perf counter result func args elapsed time.p...
小技巧 裝飾器裝飾乙個遞迴函式
在python中裝飾器可以為原函式新增一些功能。但如果函式本身是遞迴定義的,則不會僅裝飾最外層,而是在每次遞迴的時候都呼叫裝飾器。這樣會導致原函式無法被直觀的裝飾。首先定義乙個裝飾器 隨便定義乙個裝飾器 defmy decorator fun def decorator args,kwargs fu...
乙個裝飾器裝飾乙個函式
2 如果鍵不存在,則新增到字典中。請使用裝飾器來實現,順便複習下 args和 kwargs的用法 a defselect func def inner args,kwargs if len args 0 if kwargs key in kwargs data print 鍵存在 else func...