私は、send
でジェネレータに渡された値のインデックスに直接アクセスしてPython(2.7.10)コードを簡単に作ることができ、コードが実行されたことに驚いたと思いました。私は、本当に何もしない、またそれが例外をスローしないインデックスはyield
に適用発見:なぜ産出がインデックスに登録されるのですか?
def gen1():
t = yield[0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
私はインデックスyield
三度以上にしようとした場合しかし、私は例外を取得:
def gen1():
t = yield[0][0][0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
TypeError: 'int' object has no attribute '__getitem__'
これは非常に一貫性のない行動だった、そしてどのようなインデックス降伏私のための直感的な説明がある場合、私は思っていたがスローされます
実際にやっている?