ЛКПП 2: +

Поділитися
Вставка
  • Опубліковано 14 кві 2024
  • Лучший курс по питону: 2
    00:00 Вступление
    00:30 Junior: __add__, __radd__, __iadd__, типизация
    06:36 Middle: AST и BinOp, атомарность __iadd__, грамматика и приоритет операций, модуль operators
    16:11 Senior: type slots, оптимизация байткода, как работает сложение двух PyLong объектов
    25:45 Ссылки
    Полезные ссылки:
    - Материалы: github.com/sobolevn/the-best-...
    - Мой GitHub: github.com/sobolevn
    - Поддержать: boosty.to/sobolevn
    - Сообщество: discord.python.ru

КОМЕНТАРІ • 23

  • @notacatbeaver7853
    @notacatbeaver7853 15 днів тому +13

    Нужен разбор typeshed!

  • @alexandervalter
    @alexandervalter 5 днів тому

    Просто Боженька!

  • @semenowictor
    @semenowictor 14 днів тому +1

    Очень неожиданно!
    Пока о таком глубоком подходе и не думалось даже.
    Спасибо!

  • @yuliyao192
    @yuliyao192 3 дні тому

    typeshed упоминал и Рамальо, но что это в деталях, послушала бы конечно
    Спасибо за канал! Это лучшее, что видела по питону.

    • @sobolevn
      @sobolevn  3 дні тому

      Ставлю два лайка!

  • @user-oq5kj2ku9o
    @user-oq5kj2ku9o 15 днів тому +2

    Хотел бы разбор библиотеки typeshed!

  • @sobolevn
    @sobolevn  15 днів тому +9

    Звук стал лучше, да? :)

    • @aiornerok3931
      @aiornerok3931 15 днів тому +1

      да. и про typeshad тоже давай

    • @ashm_tech
      @ashm_tech 15 днів тому +1

      Звук стал идеальным! Спасибо Никита!)

  • @user-rh8kb4fy9g
    @user-rh8kb4fy9g 9 днів тому

    Разбор typeshed был бы очень уместен и приятен.

  • @user-hk9vg6on9h
    @user-hk9vg6on9h 14 днів тому

    Здравый контент

  • @user-qx6ln1hv4v
    @user-qx6ln1hv4v 9 днів тому

    Никита, спасибо за курс! Есть понимание сколько всего будет уроков и как часто они будут выходить?

    • @sobolevn
      @sobolevn  9 днів тому

      Надеюсь, что где-то 50 выпусков. В среднем раз в неделю, иногда чаще, иногда реже.

  • @user-qx6ln1hv4v
    @user-qx6ln1hv4v 8 днів тому

    1) Если после оптимизации сложения до BINARY_OP_ADD_INT мы сложим строки, то после неудачного сложения, будет вызвана BINARY_OP? Сколько раз нужно потом сложить строки, чтобы оптимизация стала BINARY_OP_ADD_UNICODE?
    2) Как я понял ошибку с += для tuple, она возникает из-за того что мы после изменения списка, пытаемся присвоить "новый" список, вместо старого.
    Но если посмотреть id списка до += и после, то id совпадает, что намекает что список как объект остается тем же. Т.е. проблема в том что мы не можем менять объект, даже если это тот же самый объект?

    • @sobolevn
      @sobolevn  8 днів тому

      1) да, fallback в BINARY_OP предусмотрен
      2) tuple не определяет *никаких* методов для мутации себя. сравнение значений даже не успевает произойти. метод не найден, ничего не вызывается :(

  • @alyarock
    @alyarock 6 днів тому

    Никогда не пользовался typeshed

  • @alpden550
    @alpden550 14 днів тому

    а зачем return self.__class__, если
    @dataclass
    class Number:
    n: int
    def __add__(self, other):
    return self.n + other
    корректен?

    • @sobolevn
      @sobolevn  14 днів тому +1

      Они делают разное: `self.n + other` вернет чистое значение, `self.__class__(self.n + other)` вернет `Number` (или его подкласс) со значением внутри.

    • @alpden550
      @alpden550 14 днів тому

      @@sobolevn да, поторопился спросить, спасибо

  • @GLOBALeVGENIUS
    @GLOBALeVGENIUS 15 днів тому +2

    Контент классный, но со звуком беда, оч тихо.

    • @sobolevn
      @sobolevn  15 днів тому

      Я сделал громче, относительно первых видосов. Нужно и дальше улучшать. Кажется, что в моем случае проще купить другой микрофон.

    • @agentdaun5699
      @agentdaun5699 11 днів тому +1

      @@sobolevn У меня всё ок, слушаю на 20% и всё слышно