始める無料で始める

デコレータを定義する

あなたの同僚は、デコレートされた関数が呼ばれる前に "before" メッセージを、呼ばれた後に "after" メッセージを表示するデコレータに取り組んでいます。関数をラップする仕組みを思い出せずに困っているようです。print_before_and_after() デコレータを完成させて、助けてあげてください。

この演習はコースの一部です

Python関数の書き方

コースを見る

演習の手順

  • デコレート対象の関数を呼び出し、位置引数 *args を渡します。
  • 新しいデコレート済みの関数を返します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def print_before_and_after(func):
  def wrapper(*args):
    print('Before {}'.format(func.__name__))
    # Call the function being decorated with *args
    ____(*args)
    print('After {}'.format(func.__name__))
  # Return the nested function
  return ____

@print_before_and_after
def multiply(a, b):
  print(a * b)

multiply(5, 10)
コードを編集して実行