2009-06-27 4 views

答えて

30

それはデコレータ構文です。

関数定義は、1つ以上のデコレータ式でラップすることができます。デコレータ式は、関数が定義されると、関数定義を含むスコープ内で評価されます。結果は呼び出し可能でなければなりません。これは関数オブジェクトを唯一の引数として呼び出されます。戻り値は、関数オブジェクトではなく関数名にバインドされています。複数のデコレータがネストされた形で適用されます。

@login_required 
def my_function(): 
    pass 

は、このやっての単なる空想の方法です::だから、このような何かやっ

詳細は

def my_function(): 
    pass 
my_function = login_required(my_function) 

を、the documentationをチェックしてください。

1

pie syntaxとも呼ばれるデコレータ。それは、あなたが別の関数で関数を「装飾」することを可能にします。あなたはすでにstaticmethod()とclassmethod()でデコレーションしています。パイ構文を使用すると、アクセスと拡張がより簡単になります。

+0

、その選択についての議論中。私はそれがJavaの伝統的なネーミングから来ると思います http://wiki.python.org/moin/PythonDecorators#A1.piedecoratorsyntax –

1

その特定のデコレータは、Djangoから来ているようです。

このデコレータについては、Django documentationを読んで理解を深めるのに役立ちます。

関連する問題