2

ジェネレーターとジェネレーター関数で動作するコードピースがあります。ジェネレータをでスライスしようとすると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同じように動作します。

  1. itertools.isliceジェネレーター、またはジェネレーター関数ではありませんか?
  2. resultジェネレータまたはitertools.isliceオブジェクトをどのように見つけることができますか?
4

1 に答える 1

1

に基づく

inspect.getmembers(itertools.islice)

isliceはイテレータであり、ジェネレータではありません。詳細Pythonのジェネレーターとイテレーターの違い

于 2012-10-19T17:50:38.157 に答える