python之裝飾器應用
阿新 • • 發佈:2019-02-19
下面的一個例子實現的一個功能是跳轉登陸,根據使用者輸入,讓使用者首次登陸後,記錄登陸狀態,下次無須登陸。還可以根據裝飾器引數選擇登陸模式。
#帳號,密碼儲存。這裡為了方便直接明文了。 user,passwd = 'aaa','123' weixin = '1' login_status = False def login_else(log='jd'): def login(h): def fun(): global login_status #定義全域性變數 if login_status == False: #首次登陸判斷 if log == 'jd': #登陸模式判斷 username = input('usernaem :') passwds = input('passwd:') if user == username and passwd == passwds: #驗證使用者名稱和密碼 print('welcome...') login_status = True #更改登陸狀態為True h() #執行定義的home() OR finance() OR book() ... else: print('帳號或密碼錯誤,登入失敗...') elif log == 'wx': username = input('驗證碼 :') if weixin == username : print('welcome...') login_status = True h() else: print('帳號或密碼錯誤,登入失敗...') else: h() return fun return login #下面是定義了三個功能函式 @login_else('jd') def home(): print('歡迎進入Home介面') @login_else('wx') def finance(): print('你需要什麼金融產品?') @login_else() def book(): print('多讀書,少玩手機。') #執行過程 print('1. home') print('2. finance') print('3. book') while True: key_num = input('請輸入您要進入頁面前的數字:') if key_num == '1': home() elif key_num == '2': finance() elif key_num == '3': book()