Python デコレータの一般的な用途は何ですか? [closed] 質問する

Python デコレータの一般的な用途は何ですか? [closed] 質問する

私は自分自身をかなり有能な Python プログラマーだと思っていますが、この言語で私が理解できなかった側面の 1 つがデコレータです。

私はそれらが何であるかを(表面的には)知っていますし、チュートリアル、例、Stack Overflow の質問を読み、構文を理解し、独自の構文を書くことができ、@classmethod や @staticmethod を時々使用していますが、自分の Python コードの問題を解決するためにデコレータを使用するという考えはまったく思いつきません。「うーん...これはデコレータの仕事のようだ!」と思うような問題に遭遇したことはありません。

そこで、皆さんが自分のプログラムでデコレータを使用した例をいくつか提供していただければ、私も「なるほど!」と思える瞬間が訪れて、理解できるのではないかと思っています。

ベストアンサー1

私は主にタイミングの目的でデコレータを使用します

def time_dec(func):

  def wrapper(*arg):
      t = time.clock()
      res = func(*arg)
      print func.func_name, time.clock()-t
      return res

  return wrapper


@time_dec
def myFunction(n):
    ...

おすすめ記事