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