Python-有惨状时器、多个装饰器装饰一个函数

装饰器的进阶

有参:在标准装饰器的外面多套一层,多套一层就需要额外的多调用一次

语法糖:@最外层函数名("参数")

def auth(argv):
   def wrapper(func):
       def inner(*args,**kwargs)
       print(argv)
       username = input("请输入用户名字:")
       password = input("请输入用户密码:")
       if username == "laoda" and password == "laoda"
      func(*args,**kwargs)
   return wrapper
def foo():
   print("I am father")
wrapper = auth("fuck")
foo = wrapper(foo)
foo()

 

def auth(argv):
   def wrapper(func):
       def inner(*args,**kwargs):
           if argv:
               print("If we're gonna do this,we've got to do it nwo")
               func(*args,**kwargs)
           else:
               func(*args,**kwargs)
       return inner
   return wrapper
@auth("True")
def foo():
   print("Sharing love isn't losing love.Love is infinite")
foo()
               

 

多个装饰器装饰一个函数

  • 多个装饰器装饰一个函数时,先执行离被装饰函数最近的装饰器

  • 小技巧:v

递归

  • 不断调用自己本身

  • 有明确的终止条件

 

 

猜你喜欢

转载自www.cnblogs.com/womenzt/p/12288548.html