send
aracılığıyla bir jeneratöre iletilen bir değerin dizinine doğrudan erişerek python (2.7.10) kodunu daha basit hale getirebileceğimi düşündüm ve kodun şaşırdığını gördüm. Sonra gerçekten bir şey yapmaz yield
uygulanan bir dizin keşfetti, ne de bir özel durum oluşturur:Niçin endekslenebiliyor?
def gen1():
t = yield[0][0][0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
: Ben endeksi
yield
üç kez ya da daha fazla çalışırsanız, ancak
def gen1():
t = yield[0]
assert t
yield False
g = gen1()
next(g)
g.send('char_str')
, bir istisna olsun
TypeError: 'int' object has no attribute '__getitem__'
atar
Bu alışılmadık tutarsız davranış olduğunu ve ne indeksleme verimi i için sezgisel açıklaması vardır acaba aslında yapıyor?