import time

def timer(func): # timer(tes1)  func=tes1
   
def deco(*args,**kwargs):       #多少个参数都匹配
       
start_time=time.time()
        func(*args,**kwargs)  
#run tes1() #匹配deco的参数 多少个参数都匹配
       
stop_time=time.time()
       
print("the func run time is %s" %(stop_time-start_time))
   
return deco
@
timer # tes1=timer(tes1)
def tes1():
    time.sleep(
1)
   
print('in the test1')
@
timer
def tes2(*args,**kwargs):
    time.sleep(
1)
   
print('test2:',args,kwargs)
tes1()
tes2(
"leiwenbin",22)

 

#

import time  user,password = 'alex','abc123' def auth(auth_type):      print("auth func",auth_type)      def outer_wrappaer(func):          def wrapper(*args,**kwargs):              print("auth func",*args,**kwargs)              if auth_type == "local":                  username = input("Username:").strip()                  passwd = input("Password:").strip()                  if user == username and passwd == password:                      print("User has passwd authentication")                      res = func(*args, **kwargs)  # from home                      print("----after authentication")                      return res                  else:                      exit("Invalid username or passoword")              elif auth_type == "ldap":                  print("ldap验证...")          return wrapper      return outer_wrappaer def index():      print("welcome to index page")  @auth(auth_type="local")  # home=wrapper() def home():      print("welcome to home page")      return "from home" @auth(auth_type="ldap") def bbs():      print("welcome to bbs page")  index() print(home()) #wrappaer bbs()