Python itertools.islice不是发电机吗?
我有一个关于生成器和生成器函数的代码段。当我尝试使用Python itertools.islice不是发电机吗?,python,itertools,Python,Itertools,我有一个关于生成器和生成器函数的代码段。当我尝试使用itertools.islice对生成器进行切片时,代码段不会生成任何输出 我研究了代码,发现了以下代码片段: if isinstance(result, dict): self.returned(result) elif inspect.isgenerator(result): for x in result: self.returned(x) else: self.returned(result)
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
为itertools.islice
返回False
,这就是破坏代码的原因<代码>检查。isgeneratorfunction的行为与此相同
结果中找出是生成器还是itertools.islice
对象
inspect.getmembers(itertools.islice)
islice
是迭代器,而不是生成器。
更多信息我的python版本是win32上的2.7.3
islice
既是迭代器又是生成器。看看这里的代码:@iTayb我相信这只是一个Python表示,描述了引擎盖下正在发生的事情,而不是它的实际实现方式