這里做個最簡單的賬號密碼驗證,主要為了實現裝飾器同時對多個函數起作用
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!