Built-in function `range` params discrepancy across versions
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Comparez les entrées range des pages de documentation functions et stdtypes pour les versions 3.10 à 3.13, en utilisant les sources rangeobject.c liées pour vérifier le comportement d’appel. Examinez les PR liés gh-125945, gh-137652 et gh-137653 ; le travail est terminé lorsque la documentation n’indique plus que step est accepté comme argument nommé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- documentation
- Type d'issue
- Documentation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100