This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Error in yield expression documentation
Type: Stage: resolved
Components: Documentation Versions: Python 3.11, Python 3.10, Python 3.9
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, iritkatriel, jacobtylerwalls, martin.panter, miss-islington, nikratio, swanson
Priority: normal Keywords: easy, patch

Created on 2015-07-17 06:53 by swanson, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 24663 merged jacobtylerwalls, 2021-02-27 16:07
PR 30461 merged miss-islington, 2022-01-07 18:39
PR 30462 merged miss-islington, 2022-01-07 18:39
Messages (6)
msg246841 - (view) Author: (swanson) Date: 2015-07-17 06:53
https://docs.python.org/3/reference/expressions.html

in
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."

NO!

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: <https://docs.python.org/3.5/glossary.html#term-generator>. (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.)
msg409998 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2022-01-07 18:39
New changeset 273cb8e7577d143830404f6779946a0bedb58758 by Jacob Walls in branch 'main':
bpo-24650: Use full term "generator function" in yield expressions docs (GH-24663)
https://github.com/python/cpython/commit/273cb8e7577d143830404f6779946a0bedb58758
msg410002 - (view) Author: miss-islington (miss-islington) Date: 2022-01-07 19:00
New changeset 8bc68140cbe8230cf048bc04faf927c1413066d1 by Miss Islington (bot) in branch '3.9':
bpo-24650: Use full term "generator function" in yield expressions docs (GH-24663)
https://github.com/python/cpython/commit/8bc68140cbe8230cf048bc04faf927c1413066d1
msg410004 - (view) Author: miss-islington (miss-islington) Date: 2022-01-07 19:01
New changeset 75a1865d1ce352909ad9a30d001486bbd7d3ed75 by Miss Islington (bot) in branch '3.10':
[3.10] bpo-24650: Use full term "generator function" in yield expressions docs (GH-24663) (GH-30461)
https://github.com/python/cpython/commit/75a1865d1ce352909ad9a30d001486bbd7d3ed75
History
Date User Action Args
2022-04-11 14:58:18adminsetgithub: 68838
2022-01-07 19:02:36iritkatrielsetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2022-01-07 19:01:37miss-islingtonsetmessages: + msg410004
2022-01-07 19:00:48miss-islingtonsetmessages: + msg410002
2022-01-07 18:39:56iritkatrielsetnosy: + iritkatriel
messages: + msg409998
2022-01-07 18:39:53miss-islingtonsetpull_requests: + pull_request28665
2022-01-07 18:39:48miss-islingtonsetnosy: + miss-islington
pull_requests: + pull_request28664
2022-01-07 18:39:01iritkatrielsetversions: + Python 3.9, Python 3.11
2021-02-27 16:07:59jacobtylerwallssetkeywords: + patch
nosy: + jacobtylerwalls

pull_requests: + pull_request23449
stage: needs patch -> patch review
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