python - functools.partial 和生成器

标签 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 x in functools.partial(TestClass().method, 10):
    print x

有什么问题吗?

最佳答案

functools.partial 创建一个 object它的行为就像一个新函数,它模仿带有一些参数“卡住”的旧函数。所以你必须实际调用这个新函数来获得相同的输出:

for x in functools.partial(TestClass().method, 10)():
    print x

关于python - functools.partial 和生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21221257/

相关文章:

javascript - ES6 已经有了生成器,为什么 ES2017 还要引入 async/await?

python - 为什么 'functools.reduce' 和 'itertools.chain.from_itertools' 在嵌套列表合并时有不同的计算时间

python - 用于在 python 中查找替换列表的 itertools 或 functools

python - 如果所有行在其列中只有一个值,则折叠 Pandas 数据框中的行

python - 有没有办法在python中运行powershell代码

python - 如何将对象添加到 "pygame.sprite.Group()"?

python - 部署到 AWS lambda 达到大小限制并且包(例如 numpy)不兼容

python - 生成器中存储的 'elements' 在哪里?

python - 为什么 next 会引发 'StopIteration' ,但 'for' 会正常返回?

python - 如何在python中连接多个函数