最新回答 / 从零结束
第一次循环 r=f(j=1) 已经传进去,等待执行第二次循环 r=f(j=2) 已经传进去,等待执行第三次循环 r=f(j=3) 已经传进去,等待执行def count(): fs = [] for i in range(1, 4): def f(j=i): return j * j fs.append(f) return fsf1, f2, f3 = count()print f1(), f2(), f3()这样或者好理解点吧
2019-07-29
已采纳回答 / Run1fast
import time def performance(f): #3333333333扔到这来 def fn(*args, **kw): #5555555555这里取传入函数的参数 t1 = time.time() #6666666666记录当前时间 r = f(*args, **kw) #...
2019-07-29
最赞回答 / RichardLeeeee
你这里面有两个问题,第一,functools.wraps()是一个自带函数,wraps就是它的名字,不能随意变更;第二,@functools.wraps()和下方的wrapper函数是通过位置关系确认彼此,跟wrapper的命名没有关系,可以类比:
@performance('ms') def factorial(n): ...
2019-07-29
def performance(f):
def fn(x):
start=time.time()
a=f(x)
end=time.time()-start
print 'call',f.__name__+'() in ',end
return a
return fn
def fn(x):
start=time.time()
a=f(x)
end=time.time()-start
print 'call',f.__name__+'() in ',end
return a
return fn
2019-07-28
def calc_prod(lst):
def myfunc():
sum=1
for x in lst:
sum*=x
return sum
return myfunc
f = calc_prod([1, 2, 3, 4])
print f()
def myfunc():
sum=1
for x in lst:
sum*=x
return sum
return myfunc
f = calc_prod([1, 2, 3, 4])
print f()
2019-07-28
f1, f2, f3 = count()
这是个高级序列赋值语句模式
举个例子:
a = [1,2,3]
f1,f2,f3 = a
那么
f1 = 1
f2 = 2
f3 = 3
一直卡在这里了,以为f1,f2,f3都是指向fs列表
这是个高级序列赋值语句模式
举个例子:
a = [1,2,3]
f1,f2,f3 = a
那么
f1 = 1
f2 = 2
f3 = 3
一直卡在这里了,以为f1,f2,f3都是指向fs列表
2019-07-26
最新回答 / qq_豆子_18
%s和%f是占位符,%s对应f.__name__,%f对应(t2-t1),可以理解为输出' call f.__name__() in (t2-t2)s'
2019-07-25