2013-03-26 86 views
2

首先嚐試用django.utils.functional.lazy修飾器。我的函數返回兩個列表,所以我用@lazy(list,list)裝飾它。這是一個簡單的簡單函數,而不是一個類的方法/屬性。如何使用django @lazy裝飾器?

我收到一個「'代理'對象不可調用'當我嘗試調用生成的裝飾函數。

+0

一個是偉大的一類方法/屬性,但在普通不起作用功能。 – s29 2013-03-27 06:48:20

回答

4

我不認爲你可以使用Django懶惰作爲裝飾。您可以使用它作爲一個函數調用:

lazy_function = lazy(f, type) 

其中f是你需要做懶惰和type是預期的數據類型的功能。

另外你如何返回這兩個列表?像:

def a(): 
    return [], [] 

如果是的話,那麼在技術上你是返回一個元組,因此,你應該使用延遲爲:

lazy_f = lazy(f, tuple) 
+0

謝謝,你是對的 - 我錯誤地認爲它被寫爲裝飾者。 – s29 2013-03-26 08:59:45

+1

如果你確實需要一個裝飾器,我正在研究一個django庫。你可以看一下https://github.com/miki725/django-auxilium/blob/develop/django_auxilium/utils/functools/lazy.py。對於任何反饋,我們都表示感謝。如果您發現任何問題,您當然可以提出問題。 – miki725 2013-03-26 13:45:44

相關問題