课程
/后端开发
/Python
/python进阶
def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn
2017-12-29
源自:python进阶 2-12
正在回答
f和fn是不一样的。定义的log函数是重新定义原f函数, 所以log函数传入的参数f是原始函数名(地址),log函数返回结果fn是重新定义的函数名(地址),调用g = log(f1) g就是fn,所以:
1. g=log(f1)
print g(5)
2. @log
def f1(n)......
print f1(5)
1和2其实是等价的。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号