本节大纲:
1:双层装饰器:
一个函数可以被多层装饰器进行装饰,执行顺序是从下到上。
如下程序:
1 #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 # author:liumeide 4 5 # USERINOF={‘islogin‘:True} 6 USERINOF={‘user_type‘:‘2‘,‘islogin‘:True} 7 def login(func): 8 def inner_1(*args,**kwargs): 9 if USERINOF.get(‘islogin‘,None): 10 ret=func() 11 return ret 12 else: 13 print(‘login first!‘) 14 return inner_1 15 def check_user(func): 16 def inner(*args,**kwargs): 17 if USERINOF.get(‘islogin‘,None)==True and USERINOF.get(‘user_type‘,None)==‘2‘: 18 ret=func() 19 return ret 20 else: 21 print(‘permission deny!!‘) 22 return inner 23 @login 24 @check_user 25 def index(): 26 print(‘index‘) 27 28 index()
原文:http://www.cnblogs.com/evilliu/p/5576271.html