No video

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

  Рет қаралды 106,593

Yandex for Developers

Yandex for Developers

Күн бұрын

В лекции мы поговорим о том, почему и что мы пишем на 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...
Весь плейлист: • Школа бэкенд-разработк...

Пікірлер: 71
@zhanibekkaimuldenov8272
@zhanibekkaimuldenov8272 4 жыл бұрын
Вопросы аудитории очень хорошие, разбавляют лекцию хорошо
@GLOBALeVGENIUS
@GLOBALeVGENIUS 4 жыл бұрын
Лекция отличная. По звуку небольшое замечание, очень неестественно звучит, когда фоновые шумы в промежутках между фразами вырезаны.
@evax2975
@evax2975 3 жыл бұрын
да там свист на фоне. Они видать его выпилить гейтом пытались. Но лучше бы уж частоту замьютили свиста. Реально сложно слушать когда вот так дергает
@KkkKkk-vg6jb
@KkkKkk-vg6jb Жыл бұрын
Да, звук адский
@robertalaverdyan3150
@robertalaverdyan3150 2 жыл бұрын
Хороший материал. Я не новичок в питоне или Си но материал дал начало для глубокого узучения Cpython.
@alexander.kochkarev
@alexander.kochkarev 3 жыл бұрын
Спасибо! Полезная лекция. Хороший вход в Python для знакомых с Си.
@user-yv8fs8mh6t
@user-yv8fs8mh6t 4 жыл бұрын
Лекция первоклассная, большое спасибо!)
@user-it1jg6wl6e
@user-it1jg6wl6e 4 жыл бұрын
Очень полезная информация. Спасибо.
@sh.konstantin
@sh.konstantin 4 жыл бұрын
увольте своего звукача. он очень любит компрессор. нельзя же так давить звук 🤦🏻‍♂️
@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 Сначала файнали, а уж потом ретерн через исключение. Вот так выходит.
@mikhail_bogatyrev
@mikhail_bogatyrev 4 жыл бұрын
Лекция отличная. Но звук все портит. Постоянные тихие паузы добивают.
@atribolt
@atribolt Жыл бұрын
блок try - finally проще рассматривать как объект. Тогда finally - это деструктор этого объекта и он выполнится при любом return внутри этого блока try.
@bennissimo
@bennissimo 4 жыл бұрын
Жаль, что нет субтитров с вопросами.
@user-cc3bv1rq2f
@user-cc3bv1rq2f 4 жыл бұрын
Да есть такой недостаток, вопросов не слышно.
@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 финали
@aalexren
@aalexren 2 жыл бұрын
Лекция хорошая, познавательная, но со звуком беда.
@user-wn2tf9lt7c
@user-wn2tf9lt7c 3 ай бұрын
Это точно первый урок для новичков?
@Dustwalker
@Dustwalker 4 жыл бұрын
Так и не услышал причин почему в питоне может течь память...
@Dustwalker
@Dustwalker 4 жыл бұрын
@@iloveudead Вы ж видите, что там фигня в популярном ответе написана, т.к. это не memory leak в классическом определении, а ситуации притянутые за уши...
@nekosora6036
@nekosora6036 3 жыл бұрын
@@Dustwalker а какое классическое определение?
@GLOBALeVGENIUS
@GLOBALeVGENIUS 3 жыл бұрын
У меня в либе как-то была утечка памяти, когда я в регистраторе функций через декораторы хранил сами объекты функций, а не слабые ссылки на них.
@v_a_a_music
@v_a_a_music 2 жыл бұрын
Основная фишка не столько в классической утечке памяти (когда память числится как занятая, хотя она не ниспользуется), сколько в том, что питон выделяет память сам, размечая ее на свои арены итд. (не знаю, насколько об этом сказано в лекции). Так вот. однажды размеченная питоном память в операционную систему не возвращается. То есть если вы загрузили гигабайт данных, а потом они вам стали не нужны, то в рамках вашего процесса на питоне эта память освободится, но для операционной системы будет выглядить так как будто вы по прежнему этот гигабайт используете, так как питон его уже разметил и не отдает. Поэтому когда сервис на питоне долго работает, он может со временем раздуваться по памяти из-за этого эффекта. Но вроде бы, это поведение пофиксили в новых версиях интерпретатора, но подробностей я не знаю))
@wad600
@wad600 Жыл бұрын
На курсах по Питону мне не рассказали про copy, deepcopy и я долго мучался на задачах со вложенными списками...
@TheAgressor13
@TheAgressor13 11 ай бұрын
спасибо, не все понятно в силу собственной необразованности, но очень интересно
@mar_kha
@mar_kha 4 ай бұрын
Здравствуйте, А сейчас как?
@user-mo7ge4cw3x
@user-mo7ge4cw3x 10 ай бұрын
Хеши надо в таблице хранить, тогда это будет быстрая операция. А при каждом сравнении генерить хеши заново это будут тормоза, особенно если хеш функция переопределена.
@darkcreator_ru
@darkcreator_ru 7 ай бұрын
Почему это компиляция в байт код считается интерпретаций? К примеру в том же Java javac считается компилятором, хотя тоже преобразует в байт код. ru.wikipedia.org/wiki/Javac
@abdujabbarmirkhalikov5480
@abdujabbarmirkhalikov5480 3 жыл бұрын
Очень интересные вопросы задают слушатели такое ощущение что там учились не начинающие или мидлы а уже сениоры которые очень не плохо разбираються в low level.
@viktor_borodin
@viktor_borodin Жыл бұрын
Посмотрел немного, ощущение что просто достаточно немного си знать, мьютекс, чуть-чуть многопоточность, базовые структуры данных
@user-pb5pd1oc5r
@user-pb5pd1oc5r 3 жыл бұрын
Лектор: - Задавайте вопросы Люди: - Задают вопросы Лектор: - Не знаю, надо смотреть
@triti77
@triti77 Жыл бұрын
Нельзя знать ответы на все вопросы и из этого не значит, что вовсе не нужно задавать вопросы
@amigo4884
@amigo4884 3 жыл бұрын
Singleton'ы всё таки не от минус пяти до двухста пятидесяти пяти, а от минус пяти до двухста пятидесяти шести включительно
@sfz4213
@sfz4213 11 ай бұрын
👍👍👍
@dmitryilyushin5047
@dmitryilyushin5047 Жыл бұрын
50:10 я проверил в 3.11 - так не работает, оба выдают True
@azamatkurbanov9067
@azamatkurbanov9067 3 жыл бұрын
Тема очень интересная, но лектор не умеет объяснять
@xychromosome6510
@xychromosome6510 4 жыл бұрын
Заук отвратительный. Первые 2 минуты и уже не хочу смотреть. Неужели нельзя было сделать звук идеальным? Организаторы? В каком веке живем?
@daniellariga
@daniellariga 4 жыл бұрын
сложно объясняет конечно...
@keyreeltian5443
@keyreeltian5443 2 жыл бұрын
он вообще не объясняет 😆
@senatortre7326
@senatortre7326 4 жыл бұрын
Шикарно. 🐍👍🏻
@swimmwatch
@swimmwatch 3 жыл бұрын
К сожалению вопросы от слушателей не записались (
@user-ue4zz1bd4r
@user-ue4zz1bd4r Жыл бұрын
Лекция ужасна с первых минут. Плохо подготовился лектор
@VitalyBelenky
@VitalyBelenky 4 жыл бұрын
Валера 🔫
@david_shiko
@david_shiko 4 жыл бұрын
33:50 Не понимаю, как добавление нового массива indices помогает нам сделать упорядоенный массив. На слайде все выглядит логичным, но при коллизии нам придется выкручиваться, что бы сохранить порядок как я понимаю? Как то тема раскрыта не до конца. И Профит от новой структуры мне не понятен, превратить пцстые слоты в None и тем самым уменьшить их значение? P.s. Лекция огонь!
@dhvcc8182
@dhvcc8182 4 жыл бұрын
None меньше чем ["--", "--", ...]. На счет коллизий не скажу, но всё же без них дикт упорядочен
@17yochurchcat9
@17yochurchcat9 2 жыл бұрын
Отвратительный доклад. Темы вообще не раскрыты.
@borismish3017
@borismish3017 Жыл бұрын
Когда рассказывают про дикты вместо ифоф, а в иходниках яндекса используются эти самые ифы вместо диктов. То когда лекторы рассказывают прл высокий уровень вхождения в яндекс, а на деле в слитых исходниках кучи говнокода.
@hennosyhennosy4961
@hennosyhennosy4961 2 жыл бұрын
что там пищит на фоне??? звуком занимаеться кто то в этой компании
@marekartist8441
@marekartist8441 3 жыл бұрын
❤️
@mefodymo7456
@mefodymo7456 2 жыл бұрын
Честно говоря, мало что понятно из лекции Лекция для сеньерных сеньеров похоже
@viktor_borodin
@viktor_borodin Жыл бұрын
Да не, просто нужно базовые структуры данных знать и си немного
@user-wn2tf9lt7c
@user-wn2tf9lt7c 3 ай бұрын
​@@viktor_borodinz я только что прошла базовый курс и всё равно ничего не понятно
@viktor_borodin
@viktor_borodin 3 ай бұрын
@@user-wn2tf9lt7c вы можете попробовать спросить. Я могу попробовать объяснить
@harveyspecter5948
@harveyspecter5948 3 жыл бұрын
А что солист группы moby в РФ переехал? И давно он сменил профориентацию?
@ruslankrivoshein2893
@ruslankrivoshein2893 3 жыл бұрын
Это Клара Захаровна
@niwgud
@niwgud Жыл бұрын
Господи, ну и каша, "питон кладёт функцию на стек", как это можно понять то вообще если нет опыта в си и ассемблере... Понимать и уметь рассказать - разные навыки.
@viktor_borodin
@viktor_borodin Жыл бұрын
Ну стек же не только в си)
@ruslankrivoshein2893
@ruslankrivoshein2893 3 жыл бұрын
Приятно видеть, чем теперь занимается Клара Захаровна из "33 квадратных метра"
@user-fo6el3kv1f
@user-fo6el3kv1f Жыл бұрын
у яндекса большие проблемы. Лекторы очень плохо преподносят материал, да и сами живут на ниточке, еще чуток и умрет. Берите пример с Хирьянова, эмоции, радость в каждом слове.
@hammikant
@hammikant Жыл бұрын
Лектор слабый, уверен, что сильный разработчик, но выступает плохо.
@5elll960
@5elll960 4 жыл бұрын
++
@serjbobrovsky1628
@serjbobrovsky1628 4 жыл бұрын
На вопрос про immutablte докладчик нёс пургу, но просил поправить. kzbin.info/www/bejne/hqmson-dn9mEa7s 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 3 жыл бұрын
всё это далеко до академического стиля, но люди все умные собрались, не академики конечно, но сове "низовое" знают и им приятно пообщаться, тем более формат и время не располагают к точному стилю с определением всяких дефиниций и тезисов
@user-ft6zh8ny9i
@user-ft6zh8ny9i 2 жыл бұрын
Вся страна изучала Пайтон, а все самые крутые и сверхбыстрые программы все равно пишут на С++. Ха-ха. Продолжайте.
@user-ft6zh8ny9i
@user-ft6zh8ny9i 2 жыл бұрын
В 23 году вся страна будет изучать С++. Потому что он будет очень лаконичным и крутым.
@user-dx8st6lr8q
@user-dx8st6lr8q 3 жыл бұрын
Драндулет для квантовых вычислений недооценён инженерами на процентов 90-95. От его возможностей. Вообще этот механизм лучше назвать кубитрон. А инженеров которые пытаются его программироваться - кубитистами. В будущем, когда сменится несколько поколений кубитистов, лет через 50-80, программирование такого устройства будет называться балансировкой кубитирования под конкретные задачи, так как корневые устройства под компилирование, но наверное разной мощности, будут стандартными. Понадобиться развить новую промышленную отрасль, в области света. Сейчас идёт переходный период когда «железо» не соответствует возможностям квантовых импульсов, на том и топчутся. С нынешним «железом» невозможно проводить точные квантовые измерения. Соответственно возможности недооценены. В Китае попробовали установить повторители, молодцы конечно, но и они дают минимальный эффект. Нет, конечно пусть пробуют, но таким путём всё будет происходить очень медленно. Может лет через 25 что то и появится. Беда Силиконовой Долины что они работают бинарной технологией программирования. А для объёмной стандартизации требуется другое оборудование. А это усилие под силу только Россиянам. Кроме того есть возможность создавать «драндулеты» для вычислений на сверхлёгких частицах. Возможности выше квантовых на порядок. www.Maharishi-TM.ru
02. ООП - Валерий Лисай
1:39:07
Yandex for Developers
Рет қаралды 43 М.
py248 Python под капотом: о байткоде
14:56
SPONGEBOB POWER-UPS IN BRAWL STARS!!!
08:35
Brawl Stars
Рет қаралды 23 МЛН
هذه الحلوى قد تقتلني 😱🍬
00:22
Cool Tool SHORTS Arabic
Рет қаралды 59 МЛН
Nurse's Mission: Bringing Joy to Young Lives #shorts
00:17
Fabiosa Stories
Рет қаралды 6 МЛН
04. Базы Данных - Татьяна Денисова
1:08:27
Yandex for Developers
Рет қаралды 55 М.
Алгоритмы на Python 3. Лекция №1
1:20:50
Тимофей Хирьянов
Рет қаралды 5 МЛН
Параллельное программирование на Python
2:03:29
Тимофей Хирьянов
Рет қаралды 67 М.
SPONGEBOB POWER-UPS IN BRAWL STARS!!!
08:35
Brawl Stars
Рет қаралды 23 МЛН