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