python / python/cpython

Assignment operator: incorrect wording

Ouverte
#98,814 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

docs
Langage dominant
Python
Étoiles
77.2k
Forks
36k
Métriques de merge des PR
Métriques de PR en attente

Description

Two quotes from The Python 3.11.0 Language Reference (emphasize is mine):

  • Note: If the object is a class instance and the attribute reference occurs on both sides of the assignment operator
  • Delimiters: The second half of the list, the augmented assignment operators, serve lexically as delimiters, but also perform an operation

As explained at the expression entry term in the glossary, an operator is a syntatical element involved in an expression. An expression has a value. The piece of syntax (a = expr) is not an expression because it cannot be evaluated. And as explained at the same entry, assignment are also statement, not expression.

In the same way there is no del/return operator, it is not correct to invoke an assignment operator, the correct wording being "assignment statement" as used in many places in The Python Language Reference Manual. The only "assignment operator" we can figure out is the walrus operator because (a := expr) has a value.

For consistency, we can observe that assignment symbols (=, +=, etc), contrary to the walrus symbol, are not listed in:

  • the set of tokens considered as operators
  • the operator precedence table.

Thomas Wouters explains in a SO comment :

Assignment is actually not an expression in Python, and = not an operator in the normal sense; operator precedence doesn't apply.

Related reference of interest: = is not an operator

EDIT:

...doesn't exist, since '=' is not an operator in Python (just like it isn't, say, in VB). But, OK, you mean "assignment".

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Examinez les sections liées de Language Reference consacrées aux instructions simples et à l’analyse lexicale, ainsi que l’entrée du glossaire sur les expressions et la table de précédence des opérateurs. Recherchez dans la documentation les utilisations de « assignment operator » et déterminez lesquelles devraient dire « assignment statement », puis vérifiez que la terminologie est cohérente avec le texte de référence environnant.

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é
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.