Целочисленное число Python c++

Возможный дубликат:
Python: поведение операторов увеличения и уменьшения

Я всегда смеялся над собой, когда оглядывался назад на свои дни на VB6 и думал: "Какой современный язык не позволяет увеличиваться с двойными знаками плюс?":

number++

К моему удивлению, я не могу найти ничего об этом в документации по Python. Должен ли я действительно подвергать себя number = number + 1? Разве люди не используют обозначение ++ / --?

Ответ 1

Python не поддерживает ++, но вы можете сделать:

number += 1

Ответ 2

Проще говоря, операторы ++ и -- не существуют в Python, потому что они не будут операторами, они должны быть операторами. Все модификации пространства имен в Python - это утверждение для простоты и согласованности. Это одно из дизайнерских решений. И поскольку целые числа неизменяемы, единственный способ "изменить" переменную - это переназначить ее.

К счастью, у нас есть замечательные инструменты для случаев использования ++ и -- на других языках, например enumerate() и itertools.count().

Ответ 3

Вы можете сделать:

number += 1

Ответ 4

Да. Оператор ++ недоступен в Python. Гвидо не любит этих операторов.

Ответ 5

Вы можете использовать:

number += 1

Ответ 6

Основная причина ++ пригодится в C-подобных языках для отслеживания индексов. В Python вы обрабатываете данные абстрактным образом и редко увеличиваетесь с помощью индексов и т.д. Ближайшей душой к ++ является метод итераторов next.

Ответ 7

Взгляните на поведение операторов инкремента и декремента в Python, чтобы объяснить, почему это не работает.

У Python действительно нет ++ и -, и я лично никогда не чувствовал, что это такая потеря.

Я предпочитаю функции с ясными именами для операторов с не всегда понятной семантикой (отсюда и классический вопрос интервью о ++ x vs. x ++ и трудности перегрузки). Я также никогда не был большим поклонником того, что пост-инкремент делает для удобочитаемости.

Вы всегда можете определить некоторый класс-оболочку (например, накопитель) с понятной семантикой приращения, а затем сделать что-то вроде x.increment() или x.incrementAndReturnPrev()

Ответ 8

Здесь есть объяснение: http://bytes.com/topic/python/answers/444733-why-there-no-post-pre-increment-operator-python

Однако отсутствие этого оператора в философии питона повышает согласованность и позволяет избежать имплицитности.

Кроме того, этот тип приращений широко не используется в коде python, потому что у python есть сильная реализация шаблона итератора плюс функция перечисления.