Тёмный

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

Yandex for Developers
Подписаться 67 тыс.
Просмотров 107 тыс.
50% 1

В лекции мы поговорим о том, почему и что мы пишем на Python. Обсудим устройство интерпретатора и словарей, менеджмент памяти и типизацию. Вы узнаете, как работают генераторы и как устроены исключения.
Презентация: yadi.sk/i/dcNx...
Полезные ссылки:
Интепретатор в целом:
docs.python.or...
github.com/pyt...
leanpub.com/in...
Управление памятью:
www.arctrix.com...
rushter.com/bl...
instagram-engi...
stackify.com/p...
Исключения:
bugs.python.or...
Весь плейлист: • Школа бэкенд-разработк...

Опубликовано:

 

20 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 71   
@zhanibekkaimuldenov8272
@zhanibekkaimuldenov8272 4 года назад
Вопросы аудитории очень хорошие, разбавляют лекцию хорошо
@evgeniy_blinov
@evgeniy_blinov 4 года назад
Лекция отличная. По звуку небольшое замечание, очень неестественно звучит, когда фоновые шумы в промежутках между фразами вырезаны.
@evax2975
@evax2975 3 года назад
да там свист на фоне. Они видать его выпилить гейтом пытались. Но лучше бы уж частоту замьютили свиста. Реально сложно слушать когда вот так дергает
@KkkKkk-vg6jb
@KkkKkk-vg6jb Год назад
Да, звук адский
@robertalaverdyan3150
@robertalaverdyan3150 2 года назад
Хороший материал. Я не новичок в питоне или Си но материал дал начало для глубокого узучения Cpython.
@OlgaKozhina-y3i
@OlgaKozhina-y3i 4 года назад
Лекция первоклассная, большое спасибо!)
@БеглиСапаров-м3т
@БеглиСапаров-м3т 4 года назад
Очень полезная информация. Спасибо.
@alexander.kochkarev
@alexander.kochkarev 4 года назад
Спасибо! Полезная лекция. Хороший вход в Python для знакомых с Си.
@jeremyundefined5035
@jeremyundefined5035 4 года назад
Очень жаль, что хеширование не было затронуто в полной мере, а было сказано только про то, что оно быстрее, нежели сравнение объектов. Здесь есть разные интересные штуки по типу почему 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
@Sergey-cz7ym
@Sergey-cz7ym Год назад
по поводу вопроса к 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 Сначала файнали, а уж потом ретерн через исключение. Вот так выходит.
@sh.konstantin
@sh.konstantin 4 года назад
увольте своего звукача. он очень любит компрессор. нельзя же так давить звук 🤦🏻‍♂️
@darkcreator_ru
@darkcreator_ru 9 месяцев назад
Почему это компиляция в байт код считается интерпретаций? К примеру в том же Java javac считается компилятором, хотя тоже преобразует в байт код. ru.wikipedia.org/wiki/Javac
@atribolt
@atribolt Год назад
блок try - finally проще рассматривать как объект. Тогда finally - это деструктор этого объекта и он выполнится при любом return внутри этого блока try.
@grehban
@grehban 4 года назад
1:11:50 просто finally выполняется всегда первым, если он есть, потом уже выполнится элс Пример def func(): try: pass except: pass else: return finally: print ('finally') print (func()) >>> 'finally' None
@someone_music
@someone_music 3 года назад
Нет. В данном случае finally был первым только лишь потому, что в else у нас return, на котором управление передается наружу, а finally вызвать нужно в любом случае - вызываем сначала finally, а потом return. Если в else присутствует код, отличный от возврата, первым выполнится именно он. В момент return исполнится finally
@blacktopepo
@blacktopepo 3 года назад
@@someone_music def ddd(): try: 10 / 1 except: pass else: print('else') return 'else' finally: return 'финали' print(ddd()) вывод: else финали
@wad600
@wad600 2 года назад
На курсах по Питону мне не рассказали про copy, deepcopy и я долго мучался на задачах со вложенными списками...
@TheAgressor13
@TheAgressor13 Год назад
спасибо, не все понятно в силу собственной необразованности, но очень интересно
@mar_kha
@mar_kha 6 месяцев назад
Здравствуйте, А сейчас как?
@aalexren
@aalexren 2 года назад
Лекция хорошая, познавательная, но со звуком беда.
@bennissimo
@bennissimo 4 года назад
Жаль, что нет субтитров с вопросами.
@СеменЦимбалюк-ф4л
@СеменЦимбалюк-ф4л 4 года назад
Да есть такой недостаток, вопросов не слышно.
@МихаилГагин-л5с
Хеши надо в таблице хранить, тогда это будет быстрая операция. А при каждом сравнении генерить хеши заново это будут тормоза, особенно если хеш функция переопределена.
@mikhail_bogatyrev
@mikhail_bogatyrev 4 года назад
Лекция отличная. Но звук все портит. Постоянные тихие паузы добивают.
@АйдарГимадиев-р6у
@АйдарГимадиев-р6у 3 года назад
Лектор: - Задавайте вопросы Люди: - Задают вопросы Лектор: - Не знаю, надо смотреть
@triti77
@triti77 Год назад
Нельзя знать ответы на все вопросы и из этого не значит, что вовсе не нужно задавать вопросы
@Ксения-х6й3р
@Ксения-х6й3р 5 месяцев назад
Это точно первый урок для новичков?
@abdujabbarmirkhalikov5480
@abdujabbarmirkhalikov5480 3 года назад
Очень интересные вопросы задают слушатели такое ощущение что там учились не начинающие или мидлы а уже сениоры которые очень не плохо разбираються в low level.
@viktor_borodin
@viktor_borodin Год назад
Посмотрел немного, ощущение что просто достаточно немного си знать, мьютекс, чуть-чуть многопоточность, базовые структуры данных
@Dustwalker
@Dustwalker 4 года назад
Так и не услышал причин почему в питоне может течь память...
@Dustwalker
@Dustwalker 4 года назад
@@iloveudead Вы ж видите, что там фигня в популярном ответе написана, т.к. это не memory leak в классическом определении, а ситуации притянутые за уши...
@nekosora6036
@nekosora6036 4 года назад
@@Dustwalker а какое классическое определение?
@evgeniy_blinov
@evgeniy_blinov 3 года назад
У меня в либе как-то была утечка памяти, когда я в регистраторе функций через декораторы хранил сами объекты функций, а не слабые ссылки на них.
@v_a_a_music
@v_a_a_music 2 года назад
Основная фишка не столько в классической утечке памяти (когда память числится как занятая, хотя она не ниспользуется), сколько в том, что питон выделяет память сам, размечая ее на свои арены итд. (не знаю, насколько об этом сказано в лекции). Так вот. однажды размеченная питоном память в операционную систему не возвращается. То есть если вы загрузили гигабайт данных, а потом они вам стали не нужны, то в рамках вашего процесса на питоне эта память освободится, но для операционной системы будет выглядить так как будто вы по прежнему этот гигабайт используете, так как питон его уже разметил и не отдает. Поэтому когда сервис на питоне долго работает, он может со временем раздуваться по памяти из-за этого эффекта. Но вроде бы, это поведение пофиксили в новых версиях интерпретатора, но подробностей я не знаю))
@sfz4213
@sfz4213 Год назад
👍👍👍
@amigo4884
@amigo4884 3 года назад
Singleton'ы всё таки не от минус пяти до двухста пятидесяти пяти, а от минус пяти до двухста пятидесяти шести включительно
@senatortre7326
@senatortre7326 4 года назад
Шикарно. 🐍👍🏻
@daniellariga
@daniellariga 4 года назад
сложно объясняет конечно...
@keyreeltian5443
@keyreeltian5443 2 года назад
он вообще не объясняет 😆
@azamatkurbanov9067
@azamatkurbanov9067 3 года назад
Тема очень интересная, но лектор не умеет объяснять
@dmitryilyushin5047
@dmitryilyushin5047 Год назад
50:10 я проверил в 3.11 - так не работает, оба выдают True
@xychromosome6510
@xychromosome6510 4 года назад
Заук отвратительный. Первые 2 минуты и уже не хочу смотреть. Неужели нельзя было сделать звук идеальным? Организаторы? В каком веке живем?
@borismish3017
@borismish3017 Год назад
Когда рассказывают про дикты вместо ифоф, а в иходниках яндекса используются эти самые ифы вместо диктов. То когда лекторы рассказывают прл высокий уровень вхождения в яндекс, а на деле в слитых исходниках кучи говнокода.
@david_shiko
@david_shiko 4 года назад
33:50 Не понимаю, как добавление нового массива indices помогает нам сделать упорядоенный массив. На слайде все выглядит логичным, но при коллизии нам придется выкручиваться, что бы сохранить порядок как я понимаю? Как то тема раскрыта не до конца. И Профит от новой структуры мне не понятен, превратить пцстые слоты в None и тем самым уменьшить их значение? P.s. Лекция огонь!
@dhvcc8182
@dhvcc8182 4 года назад
None меньше чем ["--", "--", ...]. На счет коллизий не скажу, но всё же без них дикт упорядочен
@swimmwatch
@swimmwatch 3 года назад
К сожалению вопросы от слушателей не записались (
@VitalyBelenky
@VitalyBelenky 4 года назад
Валера 🔫
@hennosyhennosy4961
@hennosyhennosy4961 2 года назад
что там пищит на фоне??? звуком занимаеться кто то в этой компании
@ВасилийГригорьев-з9х
Лекция ужасна с первых минут. Плохо подготовился лектор
@harveyspecter5948
@harveyspecter5948 4 года назад
А что солист группы moby в РФ переехал? И давно он сменил профориентацию?
@ruslankrivoshein2893
@ruslankrivoshein2893 3 года назад
Это Клара Захаровна
@17yochurchcat9
@17yochurchcat9 3 года назад
Отвратительный доклад. Темы вообще не раскрыты.
@ruslankrivoshein2893
@ruslankrivoshein2893 3 года назад
Приятно видеть, чем теперь занимается Клара Захаровна из "33 квадратных метра"
@mefodymo7456
@mefodymo7456 2 года назад
Честно говоря, мало что понятно из лекции Лекция для сеньерных сеньеров похоже
@viktor_borodin
@viktor_borodin Год назад
Да не, просто нужно базовые структуры данных знать и си немного
@Ксения-х6й3р
@Ксения-х6й3р 5 месяцев назад
​@@viktor_borodinz я только что прошла базовый курс и всё равно ничего не понятно
@viktor_borodin
@viktor_borodin 5 месяцев назад
@@Ксения-х6й3р вы можете попробовать спросить. Я могу попробовать объяснить
@niwgud
@niwgud 2 года назад
Господи, ну и каша, "питон кладёт функцию на стек", как это можно понять то вообще если нет опыта в си и ассемблере... Понимать и уметь рассказать - разные навыки.
@viktor_borodin
@viktor_borodin Год назад
Ну стек же не только в си)
@СергейПравда-з6к
у яндекса большие проблемы. Лекторы очень плохо преподносят материал, да и сами живут на ниточке, еще чуток и умрет. Берите пример с Хирьянова, эмоции, радость в каждом слове.
@serjbobrovsky1628
@serjbobrovsky1628 4 года назад
На вопрос про immutablte докладчик нёс пургу, но просил поправить. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-PxIqLgjtQ5Y.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 года назад
++
@иванришира
@иванришира 3 года назад
Драндулет для квантовых вычислений недооценён инженерами на процентов 90-95. От его возможностей. Вообще этот механизм лучше назвать кубитрон. А инженеров которые пытаются его программироваться - кубитистами. В будущем, когда сменится несколько поколений кубитистов, лет через 50-80, программирование такого устройства будет называться балансировкой кубитирования под конкретные задачи, так как корневые устройства под компилирование, но наверное разной мощности, будут стандартными. Понадобиться развить новую промышленную отрасль, в области света. Сейчас идёт переходный период когда «железо» не соответствует возможностям квантовых импульсов, на том и топчутся. С нынешним «железом» невозможно проводить точные квантовые измерения. Соответственно возможности недооценены. В Китае попробовали установить повторители, молодцы конечно, но и они дают минимальный эффект. Нет, конечно пусть пробуют, но таким путём всё будет происходить очень медленно. Может лет через 25 что то и появится. Беда Силиконовой Долины что они работают бинарной технологией программирования. А для объёмной стандартизации требуется другое оборудование. А это усилие под силу только Россиянам. Кроме того есть возможность создавать «драндулеты» для вычислений на сверхлёгких частицах. Возможности выше квантовых на порядок. www.Maharishi-TM.ru
@Принуждениекмиру-ь2ц
В 23 году вся страна будет изучать С++. Потому что он будет очень лаконичным и крутым.
@Принуждениекмиру-ь2ц
Вся страна изучала Пайтон, а все самые крутые и сверхбыстрые программы все равно пишут на С++. Ха-ха. Продолжайте.
@marekartist8441
@marekartist8441 3 года назад
❤️
Далее
02. ООП - Валерий Лисай
1:39:07
Просмотров 43 тыс.
🎙ПОЮ ВЖИВУЮ!
3:07:23
Просмотров 914 тыс.
Watching This On Loop ♾️
00:32
Просмотров 10 млн