Python使用裝飾器模擬用戶登陸驗(yàn)證功能示例
本文實(shí)例講述了Python使用裝飾器模擬用戶登陸驗(yàn)證功能。分享給大家供大家參考,具體如下:
# -*- 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ù)檢查,判斷是否有用戶登錄,如果有,不用驗(yàn)證,直接執(zhí)行函數(shù)的功能
if client_dic['username'] and client_dic['login']:
res = func(*args,**kwargs)
return res
#輸入用戶名和密碼
username = input('用戶名:').strip()
passwd = input('passwd:').strip()
#對(duì)比列表,檢查用戶名和密碼是否正確
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('用戶名或者密碼錯(cuò)誤!')
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)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例
- Python 裝飾器@,對(duì)函數(shù)進(jìn)行功能擴(kuò)展操作示例【開閉原則】
- python3.6中@property裝飾器的使用方法示例
- python 使用裝飾器并記錄log的示例代碼
- python3 property裝飾器實(shí)現(xiàn)原理與用法示例
- Python裝飾器用法示例小結(jié)
- Python實(shí)現(xiàn)對(duì)一個(gè)函數(shù)應(yīng)用多個(gè)裝飾器的方法示例
- python中裝飾器級(jí)連的使用方法示例
- Python中使用裝飾器來優(yōu)化尾遞歸的示例
- python 裝飾器的使用示例
相關(guān)文章
使用Python快速打開一個(gè)百萬行級(jí)別的超大Excel文件的方法
這篇文章主要介紹了使用Python快速打開一個(gè)百萬行級(jí)別的超大Excel文件的方法,本文通過實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Python安裝本地.whl文件的流程及注意事項(xiàng)
在Python的生態(tài)環(huán)境中.whl文件是一種預(yù)編譯的二進(jìn)制包,用于分發(fā)和安裝Python庫,這篇文章主要給大家介紹了關(guān)于Python安裝本地.whl文件的流程及注意事項(xiàng),文中講解了下載文件、安裝pip、使用pip安裝whl文件、驗(yàn)證安裝以及注意事項(xiàng),需要的朋友可以參考下2024-11-11
Python3爬蟲發(fā)送請(qǐng)求的知識(shí)點(diǎn)實(shí)例
在本篇文章里小編給大家分享的是一篇關(guān)于Python3爬蟲發(fā)送請(qǐng)求的知識(shí)點(diǎn)實(shí)例,需要的朋友們可以學(xué)習(xí)下。2020-07-07
Python中for循環(huán)控制語句用法實(shí)例
這篇文章主要介紹了Python中for循環(huán)控制語句用法,較為詳細(xì)的分析了for循環(huán)語句的原理與相關(guān)使用技巧,需要的朋友可以參考下2015-06-06
python 實(shí)現(xiàn)提取log文件中的關(guān)鍵句子,并進(jìn)行統(tǒng)計(jì)分析
今天小編就為大家分享一篇python 實(shí)現(xiàn)提取log文件中的關(guān)鍵句子,并進(jìn)行統(tǒng)計(jì)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python?Dash框架在數(shù)據(jù)可視化儀表板中的應(yīng)用與實(shí)踐記錄
Python的Plotly?Dash庫提供了一種簡(jiǎn)便且強(qiáng)大的方式來構(gòu)建和展示互動(dòng)式數(shù)據(jù)儀表板,本篇文章將深入探討如何使用Dash設(shè)計(jì)一個(gè)互動(dòng)數(shù)據(jù)儀表板,并通過代碼示例幫助讀者理解如何實(shí)現(xiàn)這一過程,感興趣的朋友一起看看吧2025-03-03
Flask框架實(shí)現(xiàn)給視圖函數(shù)增加裝飾器操作示例
這篇文章主要介紹了Flask框架實(shí)現(xiàn)給視圖函數(shù)增加裝飾器操作,結(jié)合實(shí)例形式分析了flask框架視圖添加裝飾器的具體操作方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-07-07
在Heroku云平臺(tái)上部署Python的Django框架的教程
這篇文章主要介紹了在Heroku云平臺(tái)上部署Python的Django框架的教程,Heroku云平臺(tái)使用了Git版本控制系統(tǒng),所以本教程主要提供了配置所需要的Git腳本,需要的朋友可以參考下2015-04-04

