Title: Error in yield expression documentation
Type: Stage: needs patch
Components: Documentation Versions: Python 3.10
Status: open Resolution:
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, martin.panter, nikratio, swanson
Priority: normal Keywords: easy

Created on 2015-07-17 06:53 by swanson, last changed 2021-01-12 15:43 by iritkatriel.

Messages (3)
msg246841 - (view) Author: (swanson) Date: 2015-07-17 06:53

6.2.9. Yield expressions

end of 1st paragraph:

"Using a yield expression in a function’s body causes that function to be a generator."


As the very next sentence explains, a generator is what's returned by such a function, not the function itself.

Basically, it should be sufficient to add the word "function" to the end of that sentence: "... generator function."  However, this error does NOT exist in 3.0 to 3.2 - just in 3.3 to 3.6, so I suggest just using the same wording as 3.0 to 3.2:

"Using a yield expression in a function definition is sufficient to cause that definition to create a generator function instead of a normal function."
msg246869 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2015-07-17 23:13
Technically, the glossary defines the unqualified term “generator” as the factory function: <>. (The 3.6 documentation should say the same but the build has been broken or out of date for a few months.) Though I agree adding the old wording would make it clearer.

The 3.3 change was made in revision e02da391741f for Issue 12704.
msg246872 - (view) Author: (swanson) Date: 2015-07-18 00:23
Okay, interesting - I hadn't checked the glossary.  I don't ultimately care what it's called as long as the documentation is clear and consistent.  But for anyone just looking at the names of the classes and the class hierarchy, they'd come away saying, "A generator is a type of iterator," not "A generator is a type of function."  (Functions can't even have subtypes.)  If the docs are painting a different picture than the already existing reality, it seems like that would be confusing to anyone who doesn't already know how they work.  (If you already know how something works, you don't really need the docs, so it's easy to think they're clearer than they really are.)
Date User Action Args
2021-01-12 15:43:40iritkatrielsetkeywords: + easy
versions: + Python 3.10, - Python 3.3, Python 3.4, Python 3.5, Python 3.6
2015-07-18 00:23:14swansonsetmessages: + msg246872
2015-07-17 23:13:53martin.pantersetnosy: + nikratio, martin.panter

messages: + msg246869
stage: needs patch
2015-07-17 06:53:39swansoncreate