不懂,求讲详细点
装饰真的很难懂。老师还能讲的详细点吗
装饰真的很难懂。老师还能讲的详细点吗
2015-10-24
不知道同学现在懂了没
应该是这样的
def log(f):
def fn(x):
print 'call ' + f.__name__ + '()...'
return f(x)
return fn //这个时候的log是一个返回fn函数的函数
从上面的代码看 log就是指向fn函数的 要执行fn函数 就使用log()
从f = log(f) 来看 log是一个函数名 所以log是指向fn函数的函数 只是上面的log没有参数
给fn函数传参数 就是用log(f) 这样fn函数里面就能打印出f函数的名字
给log传参数 使用log('DEBUG')(f) 这时候log('DEBUG')依然返回的是fn log('DEBUG')(f)中的(f)实际是fn的参数列表
呃...应该可以这样理解吧?
举报