Middle
59
Υλοποιήστε τη μέθοδο increment για το μοντέλο SQLAlchemy: αυξήστε το υπόλοιπο του χρήστη κατά diff με έλεγχο του μέγιστου υπολοίπου. Επιστρέψτε True αν το υπόλοιπο άλλαξε, διαφορετικά False.
Εταιρείες όπου ρωτήθηκαν
Сбер.clouds
Απάντηση από AI
sobes.tech AI
python from sqlalchemy import Column, Integer from sqlalchemy.orm import Session
class User: id = Column(Integer, primary_key=True) balance = Column(Integer)
def increment(self, session: Session, diff: int, max_balance: int) -> bool:
new_balance = self.balance + diff
if new_balance > max_balance:
return False
self.balance = new_balance
session.add(self)
session.commit()
return True
В этом методе мы сначала вычисляем потенциальный новый баланс. Если он превышает максимальный, возвращаем False. Иначе обновляем баланс, сохраняем изменения в сессии и возвращаем True.