Question Incrément Python entier avec ++ [doublon]


Dupliquer possible:
Python: Comportement des opérateurs d'incrémentation et de décrémentation 

J'ai toujours ri de moi-même quand j'ai regardé en arrière mes jours VB6 et j'ai pensé: "Quelle langue moderne ne permet pas d'incrémenter avec des signes doubles plus?":

number++

À ma grande surprise, je ne trouve rien à ce sujet dans les documents Python. Dois-je vraiment me soumettre à number = number + 1? Ne pas les gens utilisent le ++/-- notation?


541
2018-04-13 19:45


origine


Réponses:


Python ne supporte pas ++mais vous pouvez faire:

number += 1

995
2018-04-13 19:46



Tout simplement, le ++ et -- les opérateurs n'existent pas en Python car ils ne seraient pas les opérateurs, ils devraient être déclarations. Toute modification d'espace de nom en Python est une déclaration, pour plus de simplicité et de cohérence. C'est l'une des décisions de conception. Et puisque les entiers sont immuables, la seule façon de «changer» une variable est de la réaffecter.

Heureusement, nous avons des outils merveilleux pour les cas d'utilisation ++ et -- dans d'autres langues, comme enumerate() et itertools.count().


342
2018-04-13 20:12



Tu peux faire:

number += 1

32
2018-04-13 19:47



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


21
2018-04-13 19:47



La principale raison pour ++ est très pratique dans les langages C-like pour le suivi des indices. En Python, vous traitez les données de façon abstraite et vous les incrémentez rarement à travers les indices et autres. La chose la plus proche de l'esprit à ++ est le next méthode des itérateurs.


17
2018-04-13 20:12



Vous pouvez utiliser:

number += 1

15
2018-04-13 19:47



Jeter un coup d'œil à Comportement des opérateurs d'incrémentation et de décrémentation en Python pour une explication de pourquoi cela ne fonctionne pas.

Python n'a pas vraiment ++ et -, et personnellement, je n'ai jamais senti que c'était une 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 jamais été aussi un grand fan de ce que le post-incrémentation fait pour la lisibilité.

Vous pouvez toujours définir une classe wrapper (comme accumulator) avec une sémantique d'incrémentation claire, puis faire quelque chose comme x.increment () ou x.incrementAndReturnPrev ()


9
2018-04-13 19:48