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