调用calc_sum()并没有计算出结果,而是返回函数:
>>> f = calc_sum([1, 2, 3, 4])
>>> f
<function lazy_sum at 0x1037bfaa0>
# 对返回的函数进行调用时,才计算出结果:
>>> f()
10
>>> f = calc_sum([1, 2, 3, 4])
>>> f
<function lazy_sum at 0x1037bfaa0>
# 对返回的函数进行调用时,才计算出结果:
>>> f()
10
2015-05-16
sorted_ignore_case = functools.partial(sorted, key=lambda x:x.lower())
2015-05-15
def f(x):
return x[0:1].capitalize()+x[1:].lower()
print map(f,['adam', 'LISA', 'barT'])
return x[0:1].capitalize()+x[1:].lower()
print map(f,['adam', 'LISA', 'barT'])
2015-05-15
import time
def performance(f):
def fn(x):
print 'call ',f.__name__,'() in',time.asctime()
return f(x)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
def performance(f):
def fn(x):
print 'call ',f.__name__,'() in',time.asctime()
return f(x)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
2015-05-14
print filter(lambda s: s and len(s.strip()), ['test', None, '', 'str', 'END'])
这样不加 >0 也可以得到正确结果,就是提交报错,谁能解释一下
这样不加 >0 也可以得到正确结果,就是提交报错,谁能解释一下
2015-05-14
lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f()
2015-05-14
#实例属性和类属性冲突#不要在实例上修改类属性,因为只是给该实例绑定了一个实例属性,不能达到修改类属性的效果。
2015-05-14
def prod(x, y):
return x*y
print reduce(prod, [2, 4, 5, 7, 12])
return x*y
print reduce(prod, [2, 4, 5, 7, 12])
2015-05-14