Python使用裝飾器模擬用戶登陸驗證功能示例
本文實例講述了Python使用裝飾器模擬用戶登陸驗證功能。分享給大家供大家參考,具體如下:
# -*- coding:utf-8 -*-
#!python3
user_list = [
{'name':'ad1','passwd':'123'},
{'name':'ad2','passwd':'123'},
{'name':'ad3','passwd':'123'},
{'name':'ad4','passwd':'123'}
]
#初始狀態(tài),用來保存登陸的用戶,
client_dic = {'username':None,'login':False}
#添加新功能
def auth_func(func):
def wrapper(*args,**kwargs):
#參數(shù)檢查,判斷是否有用戶登錄,如果有,不用驗證,直接執(zhí)行函數(shù)的功能
if client_dic['username'] and client_dic['login']:
res = func(*args,**kwargs)
return res
#輸入用戶名和密碼
username = input('用戶名:').strip()
passwd = input('passwd:').strip()
#對比列表,檢查用戶名和密碼是否正確
for user_dic in user_list:
if username == user_dic['name'] and passwd == user_dic['passwd']:
client_dic['username'] = user_dic['name']
client_dic['login'] = True
res = func(*args,**kwargs)
return res
else:
print('用戶名或者密碼錯誤!')
return wrapper
@auth_func
def index():
print("歡迎來到主頁")
@auth_func
def home(name):
print("歡迎回家:%s"%name)
@auth_func
def shoppping_car():
print('購物車?yán)镉衃%s,%s,%s]'%('奶茶','妹妹','娃娃'))
print(client_dic)
index()
print(client_dic)
home('root')
運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
- python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例
- Python 裝飾器@,對函數(shù)進(jìn)行功能擴(kuò)展操作示例【開閉原則】
- python3.6中@property裝飾器的使用方法示例
- python 使用裝飾器并記錄log的示例代碼
- python3 property裝飾器實現(xiàn)原理與用法示例
- Python裝飾器用法示例小結(jié)
- Python實現(xiàn)對一個函數(shù)應(yīng)用多個裝飾器的方法示例
- python中裝飾器級連的使用方法示例
- Python中使用裝飾器來優(yōu)化尾遞歸的示例
- python 裝飾器的使用示例
相關(guān)文章
使用Python快速打開一個百萬行級別的超大Excel文件的方法
這篇文章主要介紹了使用Python快速打開一個百萬行級別的超大Excel文件的方法,本文通過實例代碼給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
python 實現(xiàn)提取log文件中的關(guān)鍵句子,并進(jìn)行統(tǒng)計分析
今天小編就為大家分享一篇python 實現(xiàn)提取log文件中的關(guān)鍵句子,并進(jìn)行統(tǒng)計分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python?Dash框架在數(shù)據(jù)可視化儀表板中的應(yīng)用與實踐記錄
Python的Plotly?Dash庫提供了一種簡便且強(qiáng)大的方式來構(gòu)建和展示互動式數(shù)據(jù)儀表板,本篇文章將深入探討如何使用Dash設(shè)計一個互動數(shù)據(jù)儀表板,并通過代碼示例幫助讀者理解如何實現(xiàn)這一過程,感興趣的朋友一起看看吧2025-03-03
Flask框架實現(xiàn)給視圖函數(shù)增加裝飾器操作示例
這篇文章主要介紹了Flask框架實現(xiàn)給視圖函數(shù)增加裝飾器操作,結(jié)合實例形式分析了flask框架視圖添加裝飾器的具體操作方法及相關(guān)注意事項,需要的朋友可以參考下2018-07-07
在Heroku云平臺上部署Python的Django框架的教程
這篇文章主要介紹了在Heroku云平臺上部署Python的Django框架的教程,Heroku云平臺使用了Git版本控制系統(tǒng),所以本教程主要提供了配置所需要的Git腳本,需要的朋友可以參考下2015-04-04

