<div dir="ltr"><div><div><div><div><div><div><div><div>Looking at pep 492, it seems to me the handling of "for" loops has use outside of just asyncio.  The primary use-case I can think of is multiprocessing and multithreading.  <br><br>For example, you could create a multiprocessing pool, and let the pool handle the items in a "for" loop, like so:<br><br></div>    from multiprocessing import Pool<br></div><br>    mypool = Pool(10, maxtasksperchild=2<em></em>)<br><br></div>    mypool for item in items:<br></div>        do_something_here<br>        do_something_else<br>        do_yet_another_thing<br><br><br><br></div>Or something similar with third-party modules:<br><br></div>   from greenlet import greenlet<br><br></div>   greenlet for item in items:<br>        do_something_here<br>        do_something_else<br>        do_yet_another_thing<br><br></div><div>Of course this sort of thing is possible with iterators and maps today, but I think a lot of the same advantages that apply to asyncio also apply to these sorts of cases.  So I think that, rather than having a special keyword just for asyncio, I think it would be better to have a more flexible approach.  Perhaps something like a "__for__" magic method that lets a class implement "for" loop handling, along with the corresponding changes in how the language processes the "for" loop.<br></div></div>