Python entier incrémentant avec ++ [dupliquer]

possible Duplicate:

Python: comportement des opérateurs d'incrément et de décrément

je me suis toujours ri à moi-même quand j'ai regardé en arrière à mes jours VB6 et pensé, "quel langage moderne ne permet pas incrémenter avec des signes double plus?":

number++

à ma grande surprise, je ne trouve rien à ce sujet dans les docs Python. Dois-je vraiment me soumettre à number = number + 1 ? Les gens n'utilisent pas la notation ++/-- ?

569
demandé sur Community 2010-04-13 23:45:14

8 réponses

Python ne supporte pas ++ , mais vous pouvez faire:

number += 1
1034
répondu Daniel Stutzbach 2010-04-13 19:46:57

simplement dit, les opérateurs ++ et -- n'existent pas en Python car ils ne seraient pas opérateurs , ils devraient être énoncés . Toute modification de l'espace de noms en Python est une instruction, pour la simplicité et la cohérence. C'est l'une des décisions de conception. Et parce que les entiers sont immuables, la seule façon de changer une variable est par la réaffectation des.

Heureusement, nous avons de merveilleux outils pour les boîtes à utiliser ++ et -- dans d'autres langues, comme enumerate() et itertools.count() .

355
répondu Thomas Wouters 2010-04-14 11:25:11

Vous pouvez le faire:

number += 1
35
répondu knutin 2010-04-13 19:47:16

Oui. L'opérateur ++ n'est pas disponible en Python. Guido n'aime pas ces opérateurs.

22
répondu Pierre-Antoine LaFayette 2010-04-13 19:47:03

la principale raison pour laquelle ++ est pratique dans les langages de type C est de garder une trace des indices. En Python, vous traitez les données d'une manière abstraite et incrémentez rarement à travers des indices et autres. La chose la plus proche en esprit de ++ est la méthode next des itérateurs.

19
répondu Mike Graham 2010-04-13 20:12:49

vous pouvez utiliser:

number += 1
15
répondu compie 2010-04-13 19:47:18

jetez un oeil à comportement des opérateurs d'incrément et de décrément en Python pour une explication des raisons pour lesquelles cela ne fonctionne pas.

Python n'a pas vraiment ++ et --, et je n'ai personnellement jamais senti que c'était une telle perte.

je préfère les fonctions avec des noms clairs aux opérateurs avec une sémantique non-toujours claire (d'où la question classique de l'interview sur ++x vs. X++ et les difficultés de la surcharger). Je n'ai également jamais été un grand fan de ce que la post-incrémentation fait pour la lisibilité.

vous pouvez toujours définir une classe de wrapper (comme un accumulateur) avec une sémantique d'incrément claire, puis faire quelque chose comme X. increment () or X. incrementAndReturnPrev ()

11
répondu Uri 2017-05-23 12:26:27

ici il y a une explication: http://bytes.com/topic/python/answers/444733-why-there-no-post-pre-increment-operator-python

cependant l'absence de cet opérateur dans la philosophie python augmente la cohérence et évite l'implication.

en outre, ce genre d'incréments ne sont pas largement utilisés dans le code python parce que python a une forte implémentation du modèle iterator plus la fonction enumerate.

8
répondu pygabriel 2010-04-13 19:53:31