def performance(unit):
def a(f):
def b(*args, **kwargs):
print 'call'+f.__name__+'() in %s' %(unit)
return f(*args, **kwargs)
return b
return a
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
def a(f):
def b(*args, **kwargs):
print 'call'+f.__name__+'() in %s' %(unit)
return f(*args, **kwargs)
return b
return a
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
2016-04-05
已采纳回答 / 慕粉3116435
def calc_prod(lst): def lazy_prod(): a =1 for x in lst: a = a * x return a return lazy_prod f = calc_prod([1, 2, 3, 4])print f()
2016-04-05
def calc_prod(lst):
def s(x,y):
return x*y
return reduce(s,lst)
f = calc_prod([1, 2, 3, 4])
print f
def s(x,y):
return x*y
return reduce(s,lst)
f = calc_prod([1, 2, 3, 4])
print f
2016-04-05
最赞回答 / 再见你
开始我也有这个疑惑,直到我用了<...code...>然后报错,,,None是没有strip和len方法的<...code...>加上and之后,就会先判断s的存在,如果s是None那就不用往下执行了,直接返回None<...code...>
2016-04-05
def calc_prod(lst):
def lazy_prod():
m=1;
for i in lst:
m*=i;
return m;
return lazy_prod;
f = calc_prod([1, 2, 3, 4])
print f()
def lazy_prod():
m=1;
for i in lst:
m*=i;
return m;
return lazy_prod;
f = calc_prod([1, 2, 3, 4])
print f()
2016-04-04
已采纳回答 / 魔luck
这个就要积累了,既然你想直接用一个函数,就得知道函数是否是存在了,其功能是做啥的。这个函数是Python本身内置的还是在某个模块 这个你也应该要知道了。所以不存在判断,因为你得先知道有这个函数
2016-04-04
print filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])
2016-04-03