import time def foo(): print("foo....") time.sleep(1) def bar(): print("bar>>>") time.sleep(2) def timea(x): starttime = time.time() x() overtime = time.time() print("spend %s"%(overtime -starttime)) timea(foo) timea(bar)
老板说,增加个time统计功能,好了,timea模块写完了~~~~~~~~~~~~
老板又说,其他员工投诉了,你改了调用方式,其他的程序都要重新写啊...
经过第二课时的学习,知道了,内存地址,用return 返回内存地址,然后赋值给原来的参数,那么,问题解决了!
import time def foo(): print("foo....") time.sleep(1) def bar(): print("bar>>>") time.sleep(2) def timea(x): def inner(): starttime = time.time() x() overtime = time.time() print("spend %s" % (overtime - starttime)) return inner foo = timea(foo) bar = timea(bar) foo() bar()
import time def timea(x): def inner(): starttime = time.time() x() overtime = time.time() print("spend %s" % (overtime - starttime)) return inner @timea def foo(): print("foo....") time.sleep(1) @timea def bar(): print("bar>>>") time.sleep(2) foo() bar()
后来老师又讲了很高大上的@方法,将“@”放到def的上表面就可以了, @timea 代表了 fo0= timea(foo)