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("歡迎來到主頁(yè)") @auth_func def home(name): print("歡迎回家:%s"%name) @auth_func def shoppping_car(): print('購(gòu)物車?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+tkinter實(shí)現(xiàn)網(wǎng)站下載工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具,實(shí)現(xiàn)所有數(shù)據(jù)一鍵獲取,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03python基礎(chǔ)教程之簡(jiǎn)單入門說明(變量和控制語(yǔ)言使用方法)
這篇文章主要介紹了開始學(xué)習(xí)python的第一步需要知道的知識(shí)(變量和控制語(yǔ)言使用方法),需要的朋友可以參考下2014-03-03基于Python實(shí)現(xiàn)語(yǔ)音合成小工具
TTS(Text To Speech)是一種語(yǔ)音合成技術(shù),可以讓機(jī)器將輸入文本以語(yǔ)音的方式播放出來,實(shí)現(xiàn)機(jī)器說話的效果。本文將使用pyttsx3庫(kù)作為示范,編寫一個(gè)語(yǔ)音合成小工具,感興趣的可以了解一下2022-12-12使用Python3?Boto3包刪除AWS?CloudFormation的棧(Stacks)
這篇文章主要介紹了如何使用Python3?Boto3刪除AWS?CloudFormation的棧(Stacks),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01Numpy數(shù)組的轉(zhuǎn)置和軸交換的實(shí)現(xiàn)
本文主要介紹了Numpy數(shù)組的轉(zhuǎn)置和軸交換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03