我有一个可用于生成器和生成器功能的代码段。当我尝试使用itertools.islice对生成器进行切片时,代码段不生成任何输出。

我研究了代码,发现以下代码段:

if isinstance(result, dict):
    self.returned(result)
elif inspect.isgenerator(result):
    for x in result:
        self.returned(x)
else:
    self.returned(result)


事实证明,inspect.isgeneratorFalse返回itertools.islice,这破坏了代码。 inspect.isgeneratorfunction的行为相同。


itertools.islice不是生成器还是生成器函数?
如何从result中找到生成器或itertools.islice对象?

最佳答案

基于

inspect.getmembers(itertools.islice)


islice是迭代器,而不是生成器。
更多信息Difference between Python's Generators and Iterators

关于python - itertools.islice不是发电机吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12979592/

10-12 21:19