Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

関数デコレータなる機能

関数の前にある「@」で記述されたアレ、関数デコレータというそうです。
本体に変更を与えることなく、追加の機能を提供します。

実際のところ

関数に入った時メッセージを追加するデコレータ"start_msg"を考えます。
実装すると、こんな感じ

def start_msg(f):
  def wrapper():
    print('***start***')
    return f()
  return wrapper

@start_msg
def process1():
   print("process1")
   return

process1()

実行すると、こういう風に動きます。

$ python test_deco.py
***start***
process1