为什么此Django Views装饰器以逆序运行?

有3个装饰器:

SELECT LAST_INSERT_ID()

和装饰视图:

def a(view):
    def wrapper(request,*args,**kwargs):
        import time
        print("a")
        print(int(time.time()))
        time.sleep(1)
        return view(request,**kwargs)
    return wrapper

def b(view):
    def wrapper(request,**kwargs):
        import time
        print("b")
        print(int(time.time()))
        time.sleep(1)
        return view(request,**kwargs)
    return wrapper

def c(view):
    def wrapper(request,**kwargs):
        import time
        print("c")
        print(int(time.time()))
        time.sleep(1)
        return view(request,**kwargs)
    return wrapper

通常指的是:

@c
@b
@a
def hello(request):
    return HTTPResponse("hello\n")

但它在下面运行:

c(b(a(hello())))

我的任务可以。我只是用反向。 但是真有趣...

你知道为什么会出错吗?

zubing 回答:为什么此Django Views装饰器以逆序运行?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3088809.html

大家都在问