有没有人想过为什么装饰器要套那么多层啊,把参数放到一个里面就不行啊?

今天回来看了下装饰器,然后就很好奇为啥要套几层内置函数。。。

def use_logging(level):
    def decorator(func,*args, **kwargs): # 把参数合并在了一个里面
        if level == "warn":
            print("level warn %s is running" % func.__name__)
        elif level == "info":
            print("level info %s is running" % func.__name__)
        return func(*args)
    return decorator

@use_logging(level="warn")
def foo(name='foo'):
    print("i am %s" % name)

然后就不行了。。。。。萌新求解

https://blog.csdn.net/zhengyajun_email/article/details/86715467