本来写了一个函数:app
def say_hello(data): print("hello {0}" .format(data))
领导要求在每一个函数打印的时候加上说明:“debug : xxx say_hello()”函数
方法一:spa
粗暴一点的方法是直接拿出来写一个函数,每次都调用它:这种方法也能够实现,要是有100个函数要添加呢,万一又有一部分函数不须要了呢?维护起来有点恶心debug
def func(fp): print("debug : xxx {0}()" .format(fp.__name__)) def say_goodbay(): func(say_goodbay) print("baybay") say_goodbay()
方法二:使用装饰器,这种方法不改变原代码 *args,**kwargscode
def add_values(func): def wrapper(*args,**kwargs): print("debug : xxx {0}()" .format(func.__name__)) return func(*args,**kwargs) return wrapper @add_values def say_hello(data): print("hello {0}" .format(data)) say_hello('alibaba')