01. Устройство CPython - Егор Овчаренко

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

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

  • @zhanibekkaimuldenov8272
    @zhanibekkaimuldenov8272 4 ปีที่แล้ว +13

    Вопросы аудитории очень хорошие, разбавляют лекцию хорошо

  • @robertalaverdyan3150
    @robertalaverdyan3150 2 ปีที่แล้ว +4

    Хороший материал. Я не новичок в питоне или Си но материал дал начало для глубокого узучения Cpython.

  • @evgeniy_blinov
    @evgeniy_blinov 4 ปีที่แล้ว +36

    Лекция отличная. По звуку небольшое замечание, очень неестественно звучит, когда фоновые шумы в промежутках между фразами вырезаны.

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

      да там свист на фоне. Они видать его выпилить гейтом пытались. Но лучше бы уж частоту замьютили свиста. Реально сложно слушать когда вот так дергает

    • @KkkKkk-vg6jb
      @KkkKkk-vg6jb ปีที่แล้ว +1

      Да, звук адский

  • @БеглиСапаров-м3т
    @БеглиСапаров-м3т 4 ปีที่แล้ว +2

    Очень полезная информация. Спасибо.

  • @grehban
    @grehban 4 ปีที่แล้ว +5

    1:11:50 просто finally выполняется всегда первым, если он есть, потом уже выполнится элс
    Пример
    def func():
    try:
    pass
    except:
    pass
    else:
    return
    finally:
    print ('finally')
    print (func())
    >>>
    'finally'
    None

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

      Нет. В данном случае finally был первым только лишь потому, что в else у нас return, на котором управление передается наружу, а finally вызвать нужно в любом случае - вызываем сначала finally, а потом return.
      Если в else присутствует код, отличный от возврата, первым выполнится именно он. В момент return исполнится finally

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

      @@someone_music
      def ddd():
      try:
      10 / 1
      except:
      pass
      else:
      print('else')
      return 'else'
      finally:
      return 'финали'
      print(ddd())
      вывод:
      else
      финали

  • @Sergey-cz7ym
    @Sergey-cz7ym 2 ปีที่แล้ว +1

    по поводу вопроса к try - в любом случае функция выходит только в finally, return в try и except игнорируются, но код в try и except выполняется:
    def test():
    try:
    print('try')
    return (1/0)
    except:
    print('except')
    return ('except')
    else:
    return ('else')
    finally:
    print ('finally')
    return ('finally')
    s = test()
    print('function:', s)

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

      i = "1"
      def test(i):
      try:
      i = i + 1
      except:
      return i
      finally:
      print("finally")
      print(test(i))
      finally
      1
      Сначала файнали, а уж потом ретерн через исключение. Вот так выходит.

  • @alexander.kochkarev
    @alexander.kochkarev 4 ปีที่แล้ว +2

    Спасибо! Полезная лекция. Хороший вход в Python для знакомых с Си.

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

    Почему это компиляция в байт код считается интерпретаций? К примеру в том же Java javac считается компилятором, хотя тоже преобразует в байт код.
    ru.wikipedia.org/wiki/Javac

  • @OlgaKozhina-y3i
    @OlgaKozhina-y3i 4 ปีที่แล้ว +5

    Лекция первоклассная, большое спасибо!)

  • @bennissimo
    @bennissimo 4 ปีที่แล้ว +39

    Жаль, что нет субтитров с вопросами.

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

    На курсах по Питону мне не рассказали про copy, deepcopy и я долго мучался на задачах со вложенными списками...

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

    блок try - finally проще рассматривать как объект. Тогда finally - это деструктор этого объекта и он выполнится при любом return внутри этого блока try.

  • @jeremyundefined5035
    @jeremyundefined5035 4 ปีที่แล้ว +14

    Очень жаль, что хеширование не было затронуто в полной мере, а было сказано только про то, что оно быстрее, нежели сравнение объектов. Здесь есть разные интересные штуки по типу почему hash(-1) == hash(-2) и другие. В любом случае, очень круто!)

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

      Наоборот, сравнение объектов то есть сравнение их адресов быстрее - это сравнение указателей тогда как хеширование это не тривиальная, но быстрая функция поэтому сначала сравнение объектов потом их хеш значений.

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

      @@robertalaverdyan3150 Я что-то не так понял? Сравнение объектов это как раз value equality, а не reference equality. a == b идентично a is b (т.е. object.__eq__) только в случае, если type(a).__eq__(a, b) возвращает NotImplemented

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

    50:10 я проверил в 3.11 - так не работает, оба выдают True

  • @МихаилГагин-л5с
    @МихаилГагин-л5с ปีที่แล้ว

    Хеши надо в таблице хранить, тогда это будет быстрая операция. А при каждом сравнении генерить хеши заново это будут тормоза, особенно если хеш функция переопределена.

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

    спасибо, не все понятно в силу собственной необразованности, но очень интересно

    • @mar_kha
      @mar_kha 9 หลายเดือนก่อน

      Здравствуйте,
      А сейчас как?

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

    Лекция отличная. Но звук все портит. Постоянные тихие паузы добивают.

  • @Dustwalker
    @Dustwalker 4 ปีที่แล้ว +12

    Так и не услышал причин почему в питоне может течь память...

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

      @@iloveudead Вы ж видите, что там фигня в популярном ответе написана, т.к. это не memory leak в классическом определении, а ситуации притянутые за уши...

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

      @@Dustwalker а какое классическое определение?

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

      У меня в либе как-то была утечка памяти, когда я в регистраторе функций через декораторы хранил сами объекты функций, а не слабые ссылки на них.

    • @v_a_a_music
      @v_a_a_music 3 ปีที่แล้ว +7

      Основная фишка не столько в классической утечке памяти (когда память числится как занятая, хотя она не ниспользуется), сколько в том, что питон выделяет память сам, размечая ее на свои арены итд. (не знаю, насколько об этом сказано в лекции).
      Так вот. однажды размеченная питоном память в операционную систему не возвращается. То есть если вы загрузили гигабайт данных, а потом они вам стали не нужны, то в рамках вашего процесса на питоне эта память освободится, но для операционной системы будет выглядить так как будто вы по прежнему этот гигабайт используете, так как питон его уже разметил и не отдает.
      Поэтому когда сервис на питоне долго работает, он может со временем раздуваться по памяти из-за этого эффекта.
      Но вроде бы, это поведение пофиксили в новых версиях интерпретатора, но подробностей я не знаю))

  • @sh.konstantin
    @sh.konstantin 4 ปีที่แล้ว +56

    увольте своего звукача. он очень любит компрессор. нельзя же так давить звук 🤦🏻‍♂️

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

    Лекция хорошая, познавательная, но со звуком беда.

  • @Ксения-х6й3р
    @Ксения-х6й3р 8 หลายเดือนก่อน

    Это точно первый урок для новичков?

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

    33:50 Не понимаю, как добавление нового массива indices помогает нам сделать упорядоенный массив. На слайде все выглядит логичным, но при коллизии нам придется выкручиваться, что бы сохранить порядок как я понимаю? Как то тема раскрыта не до конца. И Профит от новой структуры мне не понятен, превратить пцстые слоты в None и тем самым уменьшить их значение?
    P.s. Лекция огонь!

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

      None меньше чем ["--", "--", ...]. На счет коллизий не скажу, но всё же без них дикт упорядочен

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

    Очень интересные вопросы задают слушатели такое ощущение что там учились не начинающие или мидлы а уже сениоры которые очень не плохо разбираються в low level.

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

      Посмотрел немного, ощущение что просто достаточно немного си знать, мьютекс, чуть-чуть многопоточность, базовые структуры данных

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

    Singleton'ы всё таки не от минус пяти до двухста пятидесяти пяти, а от минус пяти до двухста пятидесяти шести включительно

  • @АйдарГимадиев-р6у
    @АйдарГимадиев-р6у 3 ปีที่แล้ว +12

    Лектор: - Задавайте вопросы
    Люди: - Задают вопросы
    Лектор: - Не знаю, надо смотреть

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

      Нельзя знать ответы на все вопросы и из этого не значит, что вовсе не нужно задавать вопросы

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

    К сожалению вопросы от слушателей не записались (

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

    Когда рассказывают про дикты вместо ифоф, а в иходниках яндекса используются эти самые ифы вместо диктов. То когда лекторы рассказывают прл высокий уровень вхождения в яндекс, а на деле в слитых исходниках кучи говнокода.

  • @daniellariga
    @daniellariga 4 ปีที่แล้ว +13

    сложно объясняет конечно...

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

      он вообще не объясняет 😆

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

    что там пищит на фоне??? звуком занимаеться кто то в этой компании

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

    А что солист группы moby в РФ переехал?
    И давно он сменил профориентацию?

  • @azamatkurbanov9067
    @azamatkurbanov9067 3 ปีที่แล้ว +9

    Тема очень интересная, но лектор не умеет объяснять

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

    Заук отвратительный. Первые 2 минуты и уже не хочу смотреть. Неужели нельзя было сделать звук идеальным? Организаторы? В каком веке живем?

  • @VitalyBelenky
    @VitalyBelenky 4 ปีที่แล้ว +2

    Валера 🔫

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

    Приятно видеть, чем теперь занимается Клара Захаровна из "33 квадратных метра"

  • @ВасилийГригорьев-з9х
    @ВасилийГригорьев-з9х ปีที่แล้ว +1

    Лекция ужасна с первых минут. Плохо подготовился лектор

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

    Честно говоря, мало что понятно из лекции
    Лекция для сеньерных сеньеров похоже

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

      Да не, просто нужно базовые структуры данных знать и си немного

    • @Ксения-х6й3р
      @Ксения-х6й3р 8 หลายเดือนก่อน

      ​@@viktor_borodinz я только что прошла базовый курс и всё равно ничего не понятно

    • @viktor_borodin
      @viktor_borodin 8 หลายเดือนก่อน

      @@Ксения-х6й3р вы можете попробовать спросить. Я могу попробовать объяснить

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

    Шикарно. 🐍👍🏻

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

    ❤️

  • @СергейПравда-з6к
    @СергейПравда-з6к 2 ปีที่แล้ว

    у яндекса большие проблемы. Лекторы очень плохо преподносят материал, да и сами живут на ниточке, еще чуток и умрет. Берите пример с Хирьянова, эмоции, радость в каждом слове.

  • @17yochurchcat9
    @17yochurchcat9 3 ปีที่แล้ว +5

    Отвратительный доклад. Темы вообще не раскрыты.

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

    Господи, ну и каша, "питон кладёт функцию на стек", как это можно понять то вообще если нет опыта в си и ассемблере...
    Понимать и уметь рассказать - разные навыки.

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

      Ну стек же не только в си)

  • @serjbobrovsky1628
    @serjbobrovsky1628 4 ปีที่แล้ว +2

    На вопрос про immutablte докладчик нёс пургу, но просил поправить.
    th-cam.com/video/PxIqLgjtQ5Y/w-d-xo.html
    class ImmutableDict(dict):
    def __setitem__(self, key, value):
    raise TypeError('Обломись')
    D = ImmutableDict({'foo': 1, 'bar': 2})
    print(D) # {'foo': 1, 'bar': 2}
    D['baz'] = 3 # TypeError
    # на самом деле надо сделать поболее, например переопределить update
    D.update({'baz': 3})
    print(D) # {'foo': 1, 'bar': 2, 'baz': 3}

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

      всё это далеко до академического стиля, но люди все умные собрались, не академики конечно, но сове "низовое" знают и им приятно пообщаться, тем более формат и время не располагают к точному стилю с определением всяких дефиниций и тезисов

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

    Лектор слабый, уверен, что сильный разработчик, но выступает плохо.

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

    ++

  • @Принуждениекмиру-ь2ц
    @Принуждениекмиру-ь2ц 2 ปีที่แล้ว

    В 23 году вся страна будет изучать С++. Потому что он будет очень лаконичным и крутым.

  • @Принуждениекмиру-ь2ц
    @Принуждениекмиру-ь2ц 2 ปีที่แล้ว

    Вся страна изучала Пайтон, а все самые крутые и сверхбыстрые программы все равно пишут на С++. Ха-ха. Продолжайте.

  • @иванришира
    @иванришира 3 ปีที่แล้ว

    Драндулет для квантовых вычислений недооценён инженерами на процентов 90-95. От его возможностей. Вообще этот механизм лучше назвать кубитрон. А инженеров которые пытаются его программироваться - кубитистами. В будущем, когда сменится несколько поколений кубитистов, лет через 50-80, программирование такого устройства будет называться балансировкой кубитирования под конкретные задачи, так как корневые устройства под компилирование, но наверное разной мощности, будут стандартными. Понадобиться развить новую промышленную отрасль, в области света.
    Сейчас идёт переходный период когда «железо» не соответствует возможностям квантовых импульсов, на том и топчутся. С нынешним «железом» невозможно проводить точные квантовые измерения. Соответственно возможности недооценены. В Китае попробовали установить повторители, молодцы конечно, но и они дают минимальный эффект. Нет, конечно пусть пробуют, но таким путём всё будет происходить очень медленно. Может лет через 25 что то и появится.
    Беда Силиконовой Долины что они работают бинарной технологией программирования. А для объёмной стандартизации требуется другое оборудование. А это усилие под силу только Россиянам. Кроме того есть возможность создавать «драндулеты» для вычислений на сверхлёгких частицах. Возможности выше квантовых на порядок.
    www.Maharishi-TM.ru

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

    👍👍👍