Ich dachte, ich könnte meinen Python (2.7.10) -Code einfacher machen, indem ich direkt auf den Index eines Wertes zugreift, der über send
an einen Generator übergeben wurde, und war überrascht, dass der Code lief. Ich habe dann einen Index yield
angewendet entdeckt hat nicht wirklich etwas zu tun, noch eine Ausnahme wirft:Warum kann Ertrag indiziert werden?
def gen1():
t = yield[0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
Allerdings, wenn ich zu indizieren yield
dreimal versuchen oder mehr, erhalte ich eine Ausnahme:
def gen1():
t = yield[0][0][0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
die
TypeError: 'int' object has no attribute '__getitem__'
Das war ungewöhnlich inkonsistentes Verhalten wirft, und ich frage mich, ob es für das, was die Indizierung Ertrag i eine intuitive Erklärung Machst du das eigentlich?