Инкремент числа Python с помощью ++ [duplicate]

Независимая ассоциация не работает с AddOrUpdate , которая обычно используется в методе Seed . Когда ссылка представляет собой существующий элемент, она будет вставлена ​​повторно.

// Existing customer.
var customer = new Customer { Id = 1, Name = "edit name" };
db.Set().AddOrUpdate(customer);

// New order.
var order = new Order { Id = 1, Customer = customer };
db.Set().AddOrUpdate(order);

В результате существующий клиент будет вставлен повторно, а новый (повторно вставленный) клиент будет связан с новым заказом.


Если мы не используем ассоциацию внешних ключей и не присваиваем идентификатор.

 // Existing customer.
var customer = new Customer { Id = 1, Name = "edit name" };
db.Set().AddOrUpdate(customer);

// New order.
var order = new Order { Id = 1, CustomerId = customer.Id };
db.Set().AddOrUpdate(order);

Мы ожидаем, что существующий клиент будет связан с новым порядком.

693
задан wjandrea 21 July 2019 в 18:32
поделиться

8 ответов

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

number += 1
1302
ответ дан 22 November 2019 в 21:30
поделиться

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

number += 1
19
ответ дан 3 November 2019 в 21:07
поделиться

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

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

435
ответ дан 22 November 2019 в 21:30
поделиться

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

21
ответ дан 22 November 2019 в 21:30
поделиться

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

Однако отсутствие этого оператора в философии питона увеличивает последовательность и избегает неявности.

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

8
ответ дан 22 November 2019 в 21:30
поделиться

Вы можете:

number += 1
48
ответ дан 22 November 2019 в 21:30
поделиться

Посмотрите на Поведение операторов инкремента и декремента в Python для объяснения, почему это не работает.

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

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

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

.
12
ответ дан 22 November 2019 в 21:30
поделиться

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

26
ответ дан 22 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: