我有一个代码片,适用于生成器和生成器函数。当我尝试使用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
对象?答案 0 :(得分:1)
基于
inspect.getmembers(itertools.islice)
islice
是一个迭代器,而不是一个生成器。
更多信息Difference between Python's Generators and Iterators