В питоне, что означает ++?

120
11

Я прочитал такой скрипт

for ... :
for ...:
++i

но что означает ++? Является ли оператор ++ питоном?

спросил(а) 2021-01-19T22:01:42+03:00 9 месяцев назад
1
Решение
151

В python это просто унарный плюс дважды. Он ничего не делает. Один может принудить bool к int, но второй абсолютно бесполезен.

ответил(а) 2021-01-19T22:01:42+03:00 9 месяцев назад
120

>>> +1
1
>>> ++1
1
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
1

ответил(а) 2021-01-19T22:01:42+03:00 9 месяцев назад
91

Python - это неявно типизированный язык, поэтому, если мы не знаем, какой тип имеет переменная, мы не можем точно сказать, что произойдет, если мы применим к нему оператор. В вашем примере i не обязательно является целым числом, это может быть объект с перегруженным унарным + (__pos__), например:

class Duplicator(object):
def __init__(self, s):
self.s = s

def __pos__(self):
self.s += self.s
return self

def __str__(self):
return self.s

z = Duplicator("ha ")
# 1000 lines of code
print +z
print ++z
print +++z

Таким образом, ответ на ваш вопрос "что означает ++x в python", "это зависит от того, что x ".

ответил(а) 2021-01-19T22:01:42+03:00 9 месяцев назад
91

Вы можете использовать i+=1 вместо i++ для цикла for. В Python не используется ++.

ответил(а) 2021-01-19T22:01:42+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема