python開發函數進階:裝飾器
阿新 • • 發佈:2017-07-28
for 中國 eas login please 函數 功能 log 原則
一,裝飾器本質
閉包函數
功能:就是在不改變原函數調用方式的情況下,在這個函數前後加上擴展功能
二,設計模式
開放封閉原則
*對擴展是開放的
*對修改是封閉的
三,代碼解釋
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 tag = False 5 6 def login(func): 7 def inner(*args,**kwargs): 8 global tag 9 if tag == False: 10 user = input(‘please your username>>>:‘) 11 pwd = input(‘please your password>>>:‘) 12 f = open(‘aaa‘,‘r‘,encoding=‘utf-8‘) 13 for i in f: 14 user_pwd = eval(i) 15 if user == user_pwd[‘name‘] and pwd == user_pwd[‘password‘]: 16 tag = True 17f.close() 18 if tag: 19 ret = func(*args,**kwargs) 20 return ret 21 return inner 22 23 @login 24 def haha(*args,**kwargs): 25 print(‘中國動漫‘) 26 pass 27 28 @login 29 def hengheng(*args,**kwargs): 30 print(‘美國動漫‘) 31 pass 32 ##########用戶調用方式33 haha() 34 hengheng()
python開發函數進階:裝飾器