Python functools.partial和生成器
我正在尝试执行以下操作:Python functools.partial和生成器,python,generator,functools,Python,Generator,Functools,我正在尝试执行以下操作: import functools class TestClass(): def method(self, n): for i in xrange(n): yield i # This works for x in TestClass().method(10): print x # This gets a TypeError: functools.partial object not iterable for
import functools
class TestClass():
def method(self, n):
for i in xrange(n):
yield i
# This works
for x in TestClass().method(10):
print x
# This gets a TypeError: functools.partial object not iterable
for x in functools.partial(TestClass().method, 10):
print x
有什么问题吗?
functools.partial
创建了一个新函数,该函数的行为类似于一个新函数,它模仿了旧函数的一些参数“冻结”。因此,您必须实际调用此新函数才能获得相同的输出:
for x in functools.partial(TestClass().method, 10)():
print x