def generate(func):
def gen_func(s):
for item in s:
yield func(item)
return gen_func
并用math.sqrt来说明:
^{pr2}$
那么为什么:gen_sum = generate(sum)
for x in gen_sum([1,2,3,4,5]):
print x
生产:TypeError Traceback (most recent call last)
in ()
1 gen_sum = generate(sum)
----> 2 for x in gen_sum(1):
3 print x
in gen_func(s)
1 def generate(func):
2 def gen_func(s): # closure
----> 3 for item in s:
4 yield func(item)
5 return gen_func
TypeError: 'int' object is not iterable
是否更准确地说,函数是一个单参数函数是这种方法工作的必要条件,但不充分?另一个必要条件是,单个参数必须是一个单个项(而不是序列)?在