1. 程式人生 > ><每日一題>題目2:編寫裝飾器,為多個函數加上認證功能(用戶賬號和密碼來源於文件)

<每日一題>題目2:編寫裝飾器,為多個函數加上認證功能(用戶賬號和密碼來源於文件)

def bsp 多個 name UNC func print span 賬號

  這裏做個最簡單的賬號密碼驗證,主要為了實現裝飾器同時對多個函數起作用

 1 FLAG = False    #加一個變量防止多次登錄驗證
 2 def wrapper(f):
 3     def inner(*args,**kwargs):
 4         ‘‘‘登錄程序‘‘‘
 5         global FLAG #將FLAG變量設置成全局變量
 6         if FLAG:
 7             ret = f(*args, **kwargs)
 8             return ret
 9         else:
10             username = input(
username:) 11 password = input(password:) 12 if username == 123 and password == 345: 13 FLAG = True 14 ret = f(*args,**kwargs) 15 return ret 16 else: 17 print(登錄失敗) 18 return inner 19 20 @wrapper
21 def func_1(): 22 print(func1 is running!) 23 24 @wrapper 25 def func_2(): 26 print(func2 is running!) 27 28 func_1() 29 func_2()

  運行結果:

1 username:123
2 password:345
3 func1 is running!
4 func2 is running!

<每日一題>題目2:編寫裝飾器,為多個函數加上認證功能(用戶賬號和密碼來源於文件)