1. ホーム
  2. python

Python - 組み込みのデコレータにはどんなものがある?[クローズド]。

2023-10-15 16:49:35

質問

私が知っているのは @staticmethod , @classmethod そして @property などがありますが、散在するドキュメントを通してのみ知ることができます。Pythonに組み込まれているすべての関数デコレータは何ですか?それはドキュメントにあるのですか?どこかで最新のリストが維持されているのでしょうか?

どのように解決するのですか?

そんなことはないでしょう。デコレータは普通の関数と変わらないので、より派手な方法で呼び出すだけです。

これらのすべてを見つけるには、次のように検索してみてください。 組み込み関数 のリストにあるように Python用語集 にあるように、デコレータ構文は単なる構文上の糖分であり、次の2つの定義が同等の関数を生成するからです(この例は用語集からコピーしたものです)。

def f(...):
    ...
f = staticmethod(f)

@staticmethod
def f(...):

というわけで、別の関数を返す組み込み関数はすべてデコレータとして使うことができます。問題は、そのように使うことに意味があるかということです :-)

ファンクツール モジュールはデコレータとして使えるいくつかの関数を含んでいますが、あなたが求めたビルトインではありません。