ООП 17 Магические методы __add__, __mul__, __sub__ и __truediv__
HTML-код
- Опубликовано: 8 май 2020
- 🔥🔥🔥 Курс на степике по ООП 🔥🔥🔥
stepik.org/z/114354
Степик с меня берет комиссию поэтому
1) Лучший способ приобрести курс - личный банковский перевод в РФ или покупку тарифа на boosty. Я добавлю вас вручную на курс по вашему ид.
t.me/artem_egoroff
2) оплачивать напрямую на степике по реферальной ссылке
stepik.org/z/114354
так с меня возьмут меньше комиссии
🚀🚀🚀 Доступ к закрытым видео на один месяц вы можете получить, став спонсором канала
/ @egoroffchannel
boosty.to/egoroff_channel
/ artem_egorov
👉👉👉Телеграмм канал моего проекта
t.me/python_egoroff
👉👉👉Группа в вк
python.study
egoroffartem.pythonanywhere.co...
Методы экземпляра. Аргумент self
• ООП 5 Методы экземпляр...
Декоратор Property
• ООП Python 11 Декорато...
Декораторы в Python
• Декораторы в Python Ч...
• ООП 6 Инициализация об...
Инициализация объекта. Метод init
• ООП 9 Публичные, прива...
Публичные, приватные, защищенные атрибуты и методы
Магические методы в Python очень важны.
В видео разберем такие магические методы как _add__, __mul__, __sub_ и _truediv_
Магический метод _add_ вызывается, когда экземпляр нашего класса участвует в операции сложения
Магический метод __mul__вызывается, когда экземпляр нашего класса участвует в операции умножения
Магический метод _sub_ вызывается, когда экземпляр нашего класса участвует в операции вычитания
Магический метод __truediv__вызывается, когда экземпляр нашего класса участвует в операции деления
Object-Oriented Programming (OOP) in Python 3
egoroffartem.pythonanywhere.co...
stepik.org/course/63085/promo
Курс на степике
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
🔥 Записывайся на курс по ООП: stepik.org/a/114354
📙 Там тебя ждет:
✔ более 180 практических заданий по ООП
✔ более 300 тестовых заданий на проверку материала
✔ более 6 часов видеоматериала
✔ текстовые материалы по урокам, примеры кода
✔ Доступ к закрытому чату с дружественной обстановкой
✔ Сертификат в случае успешного прохождения курса
🎁 По промокоду EGOROFF можно получить 10% скидки на приобретение данного курса
Просто человеческое спасибо, очень доходчиво и понятно. Ваши видео уроки просто спасение.
С помощью магического метода умножить баланс на три) мне нравится))
Как всегда все понятно. Спасибо тебе большое за твои видео
Спасибо! понравилось, не простые вещи, простыми словами рассказали! жму руку!
_Продолжаю благодарить за уроки_
Спасибо большое за отличное объяснение! Стало понятнее)
Большое спасибо! Вы объяснили и показали как определить __add___ за 5 минут.
Отличное изложение. Когда дошел до умножения, поставил на паузу, в пайчарме интуитивно сделал методы __mul__ и __rmul__
Спасибо, хорошее видео!
магический туториал о магических методах^^
спасибо большое, Артем
Просто фантастический урок))
Прикольно
Я точь в точь переписала код, а когда пытаюсь добавить к r число выбивает по несовместимость типов
Обновлено: Сделала лишние отступы, исправила, работает, спасибо за урок!
Спасибо.
Спасибо
Эти магические методы очень похожи на перегрузку операторов в С++, т.е. позволяют использовать операторы языка с пользовательскими объектами.
Спасибо за видео.
Вопрос по методам __rsub__ и __rtruediv__, а точнее если возможность из числа вычесть баланс, потому-что при стандартной записи эти методы меняют местами вычитаемое и уменьшаемое, если сделать так "return other - self", то просто вылетает ошибка
что в ошибке говорится?
Артём, такой вопрос.
Почему когда мы складываем два числа и записываем их в BankAccount, отрибут q. balance не изменяется, но пои этом выводится число с учетом сложения?
Вроде разобрался.
Мы должны явно указать
q = q + 100, а не просто q + 100
Обнаружил, что можно просто: ___radd___ = ___add___
Не могу придумать оправданное практическое применение показанной реализации. Вы применяли такое решение где то в продакшене? Мне кажется это только увеличит запутанность и атрибут или проперти намного удобнее складывать. Заранее спасибо.
Согласен. Очередные объяснения с примерами не из мира сего, в итоге видим комменты - ничего не понял, но очень интересно... Напоминает объяснения с классами на примере "давайте возьмем автомобиль...". Вместо нормальных практических примеров, кормят старым теоретическим дерьмом.
Что за приложение карандаш?
С умножением(__mul__) и сложением(__add__) все нормально, но вот с вычитанием(__sub__) и делением(__truediv__) не все понятно, а именно с __rsub__ и __rtruediv__.
Например:
class Num:
def __init__(self,n):
self.n=n
def __sub__(self,other):
return self.n-other
def __rsub__(self, other):
return self-other
def __truediv__(self, other):
return self.n/other
def __rtruediv__(self, other):
return self/other
>>a=Num(10)
>>14-a
-4
>>2/a
5
Если поменять в rsub и rtruediv на "other-self" ("other/self"), то возникает ошибка: "RecursionError: maximum recursion depth exceeded".
В комментариях для rsub нашли решение в виде "return -(self-other)". Оказалось, что не совсем понятно.
может надо было писать other-self.n ?
@@egoroffchannel Спасибо. В примерах в radd использовали только self+other, тем самым вызывался уже add, думал так и надо перенаправлять, но оказывается можно сразу возвращать из radd.
@@Sechyas нет, ты описываешь так раз в этих методах кто с кем должен складываться. Откуда питон узнает, что нужно именно атрибут n брать и с числом допустим вычитать
Доброго времени суток, почему с сегодняшнего дня курс на Stepik заблокирован? Вчера вечером всё было прекрасно(
Потому что санкции на ютуб, и возможность спонсорства отключается в рф
@@egoroffchannel, как тогда можно продолжить ваше обучение?
@@user-vu4yq8cv7t приобрести курс на степике, я про это писал на канале, на вкладке Сообщество и ещё письма на степике рассылал
@@egoroffchannel, понял спасибо.
Как сделать консоль вертикальной, а не горизонтальной?
На шестеренку жмешь -> Move to -> Right top
Я знаю правду об авторе видео. Расскажу кому если интересно прям в комментариях
Привет. Расскажи?
Все знают - знают что он крут)
@egoroff_channel Как работает __radd__, почему возвращаем self + other?
потому что он переворачивает операнды. 12 стало r, а r - 12