我有一个可用于生成器和生成器功能的代码段。当我尝试使用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.isgenerator
为False
返回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/