课程
/后端开发
/Python
/python进阶
def log1(f):
def fn(x):
print 'call ' + f.__name__ + '() log'
return f(x)
return fn
2018-12-12
源自:python进阶 2-12
正在回答
你不return f(x),请问你原来的函数执行了吗?这个本质就是为了增强原来函数的功能,所以在最后还是要执行原来的函数
装饰器的目的是在原函数上添加新功能,他并非修改函数的返回值。return fn 实际上最终是return f(x)即返回原函数。print 只是完成了装饰器的功能而已,原函数的功能不能丢啊。
这样才能执行f(x)
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计