Built-in function `range` params discrepancy across versions
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 77.2k
- Fork
- 35.9k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
I'm sorry if this has already been reported. I'm sure it's very low on any list of priorities but it should be an easy one.
I noticed that when doing a Google search for "python built in functions" I am presented with two official results:
- functions https://docs.python.org/3/library/functions.html
- stdtypes https://docs.python.org/3/library/stdtypes.html
On the functions page, clicking on range takes you to https://docs.python.org/3/library/functions.html#func-range . It looks like, as of 3.11, range accepts step as a kwarg. This is inconsistent with the stdtypes page which shows step as an optional, positional arg through 3.13.
functions:
- 3.10 https://docs.python.org/3.10/library/functions.html#func-range
- 3.11 https://docs.python.org/3.11/library/functions.html#func-range
- 3.12 https://docs.python.org/3.12/library/functions.html#func-range
- 3.13 https://docs.python.org/3.13/library/functions.html#func-range
stdtypes:
- 3.10 https://docs.python.org/3.10/library/stdtypes.html#range
- 3.11 https://docs.python.org/3.11/library/stdtypes.html#range
- 3.12 https://docs.python.org/3.12/library/stdtypes.html#range
- 3.13 https://docs.python.org/3.13/library/stdtypes.html#range
source:
- 3.10 https://github.com/python/cpython/blob/3.10/Objects/rangeobject.c#L159
- 3.11 https://github.com/python/cpython/blob/3.11/Objects/rangeobject.c#L157
- 3.12 https://github.com/python/cpython/blob/3.12/Objects/rangeobject.c#L156
- 3.13 https://github.com/python/cpython/blob/3.13/Objects/rangeobject.c#L158
I didn't see any mention of this change in What’s New In Python 3.11 and it surprised me that a built-in would be changed in such a way.
I pulled a 3.11 docker image and it would seem step is not a kwarg.
docker run -it --rm python:3.11
Python 3.11.10 (main, Oct 19 2024, 04:02:01) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> range(1, 1, step=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() takes no keyword arguments
tl;dr - The functions page incorrectly states that the range function accepts step as a kwarg.
Linked PRs
- gh-125945
- gh-137652
- gh-137653
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Confronta le voci range nelle pagine di documentazione functions e stdtypes per le versioni dalla 3.10 alla 3.13, utilizzando le sorgenti collegate rangeobject.c per verificare il comportamento della chiamata. Esamina i PR collegati gh-125945, gh-137652 e gh-137653; il lavoro è completato quando la documentazione non afferma più che step è accettato come argomento denominato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- documentation
- Tipo di issue
- Documentazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 25/100