デコレータを定義する
あなたの同僚は、デコレートされた関数が呼ばれる前に "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)