print factorial(10) 中10是什么意思
最后一段print factorial(10) 这个10是什么意思?还有结果3628800是return r的结果还是return fn的结果?
最后一段print factorial(10) 这个10是什么意思?还有结果3628800是return r的结果还是return fn的结果?
2016-09-06
先回答你问题:
10是这个函数最终执行的时候的参数,可以看做是n=10
def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1))
3628800是 return r的结果
------------------------------------------------
借用其他同学的代码。2-13节的正确代码可以是这样的:
import time def performance(unit): def perf_decorator(f): def wrapper(*args, **kw): t1 = time.time() r = f(*args, **kw) t2 = time.time() t = (t2 - t1)*1000 if unit =='ms' else (t2 - t1) print 'call %s() in %f %s'%(f.__name__, t, unit) return r return wrapper return perf_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
它的执行顺序是这样:
performance('ms')
perf_decorator(factorial)
wrapper(10)
执行wrapper()函数中的print和return
举报