@修飾子

680 ワード

あまり話さないでコードをつけて、簡単に使い方を説明します.
def a(fun):
    fun()


@a
def fn():
    print(12)

以上のコードを実行し、出力を得る
12

ここでは@解釈器の使い方を説明し,関数を修飾器関数のパラメータとして伝達する.
2つのモディファイヤを使ってみましたが、使い方は以下の通りです.
def a(fun):
    print('a')
    fun()
    return fun


def b(fun):
    print('b')
    fun()


@b
@a
def fn():
    print(12)

出力は
a
12
b
12

ここまで試してみると、なぜ@修飾子が必要なのか、pythonの関数自体がパラメータとして関数を入力できるため、例えば最初の例を次のコードに変更することができます.
def a(fun):
    fun()


def fn():
    print(12)


a(fn)

いくつかの資料を調べて、原因はaopの思想と関係があるべきで、深く研究していないで、穴を埋めて、時間があって深く掘ります.