On 05/01, Stefan Behnel wrote: > Yury Selivanov schrieb am 01.05.2015 um 20:52:
>> I don't like the idea of combining __next__ and __anext__. >> In this case explicit is better than implicit. __next__ >> returning coroutines is a perfectly normal thing for a >> normal 'for' loop (it wouldn't to anything with them), >> whereas 'async for' will interpret that differently, and >> will try to await those coroutines. > > Sure, but the difference is that one would have called __aiter__() first > and the other __iter__(). Normally, either of the two would not exist, so > using the wrong loop on an object will just fail. However, after we passed > that barrier, we already know that the object that was returned is supposed > to obey to the expected protocol, so it doesn't matter whether we call > __next__() or name it __anext__(), except that the second requires us to > duplicate an existing protocol. If we must have __aiter__, then we may as well also have __anext__; besides being more consistent, it also allows an object to be both a normol iterator and an asynch iterator. -- ~Ethan~ _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com