ООП 17 Магические методы __add__, __mul__, __sub__ и __truediv__

แชร์
ฝัง
  • เผยแพร่เมื่อ 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...

ความคิดเห็น • 43

  • @egoroffchannel
    @egoroffchannel  21 วันที่ผ่านมา

    🔥 Записывайся на курс по ООП: stepik.org/a/114354
    📙 Там тебя ждет:
    ✔ более 180 практических заданий по ООП
    ✔ более 300 тестовых заданий на проверку материала
    ✔ более 6 часов видеоматериала
    ✔ текстовые материалы по урокам, примеры кода
    ✔ Доступ к закрытому чату с дружественной обстановкой
    ✔ Сертификат в случае успешного прохождения курса
    🎁 По промокоду EGOROFF можно получить 10% скидки на приобретение данного курса

  • @aleksander2747
    @aleksander2747 15 วันที่ผ่านมา

    Просто человеческое спасибо, очень доходчиво и понятно. Ваши видео уроки просто спасение.

  • @_alena__
    @_alena__ 2 ปีที่แล้ว +3

    С помощью магического метода умножить баланс на три) мне нравится))

  • @mystical_stories
    @mystical_stories 2 ปีที่แล้ว +1

    _Продолжаю благодарить за уроки_

  • @TheReasterTR3
    @TheReasterTR3 4 ปีที่แล้ว +11

    Как всегда все понятно. Спасибо тебе большое за твои видео

  • @bboyrusk
    @bboyrusk ปีที่แล้ว +1

    Спасибо! понравилось, не простые вещи, простыми словами рассказали! жму руку!

  • @breakz849
    @breakz849 ปีที่แล้ว

    Большое спасибо! Вы объяснили и показали как определить __add___ за 5 минут.

  • @user-fs9gp6oz8x
    @user-fs9gp6oz8x 3 ปีที่แล้ว +4

    Спасибо большое за отличное объяснение! Стало понятнее)

  • @tarassavchenko2317
    @tarassavchenko2317 4 ปีที่แล้ว +6

    магический туториал о магических методах^^

  • @brutsmart
    @brutsmart 2 ปีที่แล้ว

    Отличное изложение. Когда дошел до умножения, поставил на паузу, в пайчарме интуитивно сделал методы __mul__ и __rmul__

  • @delawer1033
    @delawer1033 4 ปีที่แล้ว

    Спасибо, хорошее видео!

  • @IGORVBORODIN
    @IGORVBORODIN 4 ปีที่แล้ว

    спасибо большое, Артем

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n 2 ปีที่แล้ว +1

    Просто фантастический урок))

  • @yasuperdashakakasha
    @yasuperdashakakasha 3 ปีที่แล้ว +2

    Я точь в точь переписала код, а когда пытаюсь добавить к r число выбивает по несовместимость типов
    Обновлено: Сделала лишние отступы, исправила, работает, спасибо за урок!

  • @user-gv9dg4ni5g
    @user-gv9dg4ni5g 2 ปีที่แล้ว

    Прикольно

  • @user-hn7gb9ej9d
    @user-hn7gb9ej9d 4 ปีที่แล้ว

    Спасибо.

  • @Dm-if3vl
    @Dm-if3vl 3 ปีที่แล้ว

    Спасибо

  • @ArtyomRolei
    @ArtyomRolei 2 ปีที่แล้ว +1

    Эти магические методы очень похожи на перегрузку операторов в С++, т.е. позволяют использовать операторы языка с пользовательскими объектами.

  • @YbisZX
    @YbisZX 3 ปีที่แล้ว +1

    Обнаружил, что можно просто: ___radd___ = ___add___

  • @user-mh5yb3ub3r
    @user-mh5yb3ub3r 3 ปีที่แล้ว

    Спасибо за видео.
    Вопрос по методам __rsub__ и __rtruediv__, а точнее если возможность из числа вычесть баланс, потому-что при стандартной записи эти методы меняют местами вычитаемое и уменьшаемое, если сделать так "return other - self", то просто вылетает ошибка

    • @egoroffchannel
      @egoroffchannel  3 ปีที่แล้ว

      что в ошибке говорится?

  • @joehart7382
    @joehart7382 4 ปีที่แล้ว

    Что за приложение карандаш?

  • @maxumys_12
    @maxumys_12 3 ปีที่แล้ว

    Артём, такой вопрос.
    Почему когда мы складываем два числа и записываем их в BankAccount, отрибут q. balance не изменяется, но пои этом выводится число с учетом сложения?

    • @maxumys_12
      @maxumys_12 3 ปีที่แล้ว

      Вроде разобрался.
      Мы должны явно указать
      q = q + 100, а не просто q + 100

  • @user-id1mn7rq5h
    @user-id1mn7rq5h 3 ปีที่แล้ว

    Не могу придумать оправданное практическое применение показанной реализации. Вы применяли такое решение где то в продакшене? Мне кажется это только увеличит запутанность и атрибут или проперти намного удобнее складывать. Заранее спасибо.

    • @victorkropov7132
      @victorkropov7132 3 ปีที่แล้ว

      Согласен. Очередные объяснения с примерами не из мира сего, в итоге видим комменты - ничего не понял, но очень интересно... Напоминает объяснения с классами на примере "давайте возьмем автомобиль...". Вместо нормальных практических примеров, кормят старым теоретическим дерьмом.

  • @Aquila-jq8sm
    @Aquila-jq8sm 4 ปีที่แล้ว

    Как сделать консоль вертикальной, а не горизонтальной?

    • @Roiser101
      @Roiser101 4 ปีที่แล้ว

      На шестеренку жмешь -> Move to -> Right top

  • @user-vu4yq8cv7t
    @user-vu4yq8cv7t 2 ปีที่แล้ว +1

    Доброго времени суток, почему с сегодняшнего дня курс на Stepik заблокирован? Вчера вечером всё было прекрасно(

    • @egoroffchannel
      @egoroffchannel  2 ปีที่แล้ว

      Потому что санкции на ютуб, и возможность спонсорства отключается в рф

    • @user-vu4yq8cv7t
      @user-vu4yq8cv7t 2 ปีที่แล้ว

      @@egoroffchannel, как тогда можно продолжить ваше обучение?

    • @egoroffchannel
      @egoroffchannel  2 ปีที่แล้ว

      @@user-vu4yq8cv7t приобрести курс на степике, я про это писал на канале, на вкладке Сообщество и ещё письма на степике рассылал

    • @user-vu4yq8cv7t
      @user-vu4yq8cv7t 2 ปีที่แล้ว

      @@egoroffchannel, понял спасибо.

  • @Sechyas
    @Sechyas 3 ปีที่แล้ว

    С умножением(__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)". Оказалось, что не совсем понятно.

    • @egoroffchannel
      @egoroffchannel  3 ปีที่แล้ว

      может надо было писать other-self.n ?

    • @Sechyas
      @Sechyas 3 ปีที่แล้ว

      @@egoroffchannel Спасибо. В примерах в radd использовали только self+other, тем самым вызывался уже add, думал так и надо перенаправлять, но оказывается можно сразу возвращать из radd.

    • @egoroffchannel
      @egoroffchannel  3 ปีที่แล้ว

      @@Sechyas нет, ты описываешь так раз в этих методах кто с кем должен складываться. Откуда питон узнает, что нужно именно атрибут n брать и с числом допустим вычитать

  • @sm1rvv247
    @sm1rvv247 4 ปีที่แล้ว +1

    Я знаю правду об авторе видео. Расскажу кому если интересно прям в комментариях

    • @user-gl8qs7qj4k
      @user-gl8qs7qj4k 4 ปีที่แล้ว

      Привет. Расскажи?

    • @Jingotube
      @Jingotube 3 ปีที่แล้ว +4

      Все знают - знают что он крут)

  • @olitakic
    @olitakic 2 ปีที่แล้ว

    @egoroff_channel Как работает __radd__, почему возвращаем self + other?

    • @DimbikeY
      @DimbikeY ปีที่แล้ว

      потому что он переворачивает операнды. 12 стало r, а r - 12