课程
/后端开发
/Python
/python进阶
def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn
2016-05-13
源自:python进阶 2-12
正在回答
原来函数的返回值是多少,装饰后的返回值也是多少
返回装饰过的原程序啊
原程序像一辆白色的车f(x),装饰器像一个修理厂log(),把车开进去就是log(f),可以有多种装饰如喷漆fn(x)换轮胎fm(x),我们选择喷漆return fn,所以进入到fn(x)的流程中,走完这个流程后喷好了,把新车开出来f(x)
这里面不带括号的fn是指针,指向函数fn()所在的内存地址。带括号的fn(x) f(x) log(f)是具体的函数。
worry921
昵称2_18位中英文 回复 worry921
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计