decorator.py
def print_info(func):
def wrapper(*args, **kwargs):
print('start')
result = func(*args,**kwargs)
print('end')
return result
return wrapper
#関数に何かを付け加える場合に便利(デコレーターを複数適用する場合は順番に注意)
@print_info
def add_num(a, b):
return a+b
r = add_num(10,20)
print(r)
#デコレータを使わない場合、下記のように書けるが分かりにくい
#f = print_info(add_num)
#r = f(10,20)
#print(r)
出力:
start
end
30