Nick Coghlan added the comment:

I agree with Guido that the in-practice terminology for synchronous generators 
is:

 "generator" = infer from context (and/or the ambiguity doesn't matter)
 "generator function" = generator iterator factory defined with "def"
 "generator iterator" = result of calling a generator function

Hence the caveat on https://docs.python.org/3/glossary.html#term-generator: 
"Usually refers to a generator function, but may refer to a generator iterator 
in some contexts. In cases where the intended meaning isn’t clear, using the 
full terms avoids ambiguity."

For async I believe you may be better off avoiding the term "generator" 
entirely, and instead going with "native async iterator":

  "native async iterator" = infer from context
  "native async iterator function" = async iterator factory defined with "async 
def"
  "native async iterator object" = result of calling a native async iterator 
function

Yes, technically there's generator machinery under the hood, but I think we're 
better off letting the discovery of "Oh, coroutines, native async iterators, 
and generators are all basically the same thing at runtime" be delayed until 
new users are further along in the process of using Python productively.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28091>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to