【问题标题】:How do I use django @lazy decorator?如何使用 django @lazy 装饰器?
【发布时间】:2013-03-15 17:38:00
【问题描述】:

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

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

【问题讨论】:

  • 这个方法非常适合类中的方法/属性,但不适用于普通函数。

标签: python django lazy-evaluation python-decorators


【解决方案1】:

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

lazy_function = lazy(f, type)

其中f 是你需要做惰性的函数,type 是预期的数据类型。

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

def a():
    return [], []

如果是,那么从技术上讲,您正在返回一个元组,因此您应该使用惰性作为:

lazy_f = lazy(f, tuple)

【讨论】:

  • 谢谢,你是对的——我错误地认为它是作为装饰器编写的。
  • 如果你真的需要一个装饰器,我正在开发一个提供装饰器的 django 库。你可以看看github.com/miki725/django-auxilium/blob/develop/django_auxilium/…。对于任何反馈,我们都表示感谢。如果您发现任何问题,您当然可以提出问题。
猜你喜欢
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 2015-01-18
相关资源
最近更新 更多