如何使用 django @lazy 装饰器?

s29*_*s29 2 python django lazy-evaluation python-decorators

首先尝试使用 django.utils.functional.lazy 装饰器。我的函数返回两个列表,所以我用@lazy(list, list) 装饰它。这是一个简单的 jane 函数,而不是类上的方法/属性。

当我尝试调用生成的装饰函数时,我得到一个“'代理'对象不可调用”。

mik*_*725 5

我不认为你可以使用 Django 的懒惰作为装饰器。您可以将其用作函数调用:

lazy_function = lazy(f, type)
Run Code Online (Sandbox Code Playgroud)

f你需要懒惰的函数在哪里,type是预期的数据类型。

另外你如何返回这两个列表?喜欢:

def a():
    return [], []
Run Code Online (Sandbox Code Playgroud)

如果是,那么从技术上讲,您将返回一个元组,因此您应该将 lazy 用作:

lazy_f = lazy(f, tuple)
Run Code Online (Sandbox Code Playgroud)