@Nulltiton

Почему не дополняются значения в return?

В представленном методе не получается сложить значения. Возникает ошибка: "Код недоступен
Операторы должны быть разделены символами перевода строки или точками с запятой
Ожидается выражение". В интернете видел примеры сложения в return, да и в других языках это тоже работало. Подскажите, в чем может быть проблема?
def top_up_balance(self, amount):
        #self._balance += amount
        return self._balance += amount
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
это не обычное сложение, а сложение и присваивание self._balance += amount эквивалентно. self._balance = self._balance + amount. Ты можешь потенциально использовать такую форму с := (walrus) оператором. и код будет выглядеть вот так
return (self._balance := self._balance+ amount) скобки здесь обязательны. С обычным присваиванием так нельзя.

Отредактировано ошибочка вышла Мы не можем использовать walrus оператор, с атрибутами экземпляра класса. Кстати, это интересно, он выдает SyntaxError: cannot use assignment expressions with attribute. Я ожидал, что это будет NameError. Вот уже удивительно, век живи век учись.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Zzzz9
return self._balance + amount
Ответ написан
Комментировать
@chemdev
Раз никто не сказал, напишу третий ответ.
Ни в одной компании в мире, ни в одной адекватной задаче на собесе, ни в одной адекватной учебной задаче нет условий / цели написать минимальное количество строк. Твоя функция делает две вещи (что уже не ок): увеличивает значение атрибута и возвращает данный атрибут. Напиши это в той же последовательности что и на "человеческом" и не парься.
Ответ написан
@DDV23
Биокибернетик
А чем не устраивает? зачем мудрить то:)
def top_up_balance(self, amount):
self._balance += amount
return self._balance

"walrus" (:=) применим только к простым переменным. остальное изврат и ошибки:)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы