Хотел бы выразить благодарность, за подобные видео! Про кишки Питона очень мало информации в популярном виде в видеоформате. Но пока вопросов больше чем ответов )) 1. Через import ast показана структура аст-дерева. Это какое-то предмтавление или это реальный код с которым работает интерпретатор? 2. Модуль ast.py внезапно написан на питоне, значит ли это, что ast строится питонячьим кодом? Да не, не может такого быть )) 3. Показан пример Питоновской грамматики (как я понял используется парсером на этапе постороения ast)? Что это за файл такой, где взять ?) 4. Ещё не понимаю на каком этапе создаются объекты. В ast дереве например right=Constant(value=2) - это просто как литерал рассматривается или есть уже объект? Понятно, что для чисел есть уже зарезервированные изначально объекты в некотоом диапазоне, но если взять к примеру строку? 5. _PyLong_Add - сложение дух чисел (интёрналсиайпи метод [Чта?])) и x_add сложение двух чисел. Что есть что ?
1. да, реальные объекты ast, которые потом компилируются в байткод 2. _ast - написан на С со всеми базовыми типами, которые генерятся из `Python.asdl`, ast - написан на питоне, re-export'ит типы из _ast 3. `python.gram` 4. Объект типа `ast.Constant` в объект `int` он превратится позже 5. _PyLong_Add - internal C-API для сложения двух PyLong (int) объектов
1) Если после оптимизации сложения до BINARY_OP_ADD_INT мы сложим строки, то после неудачного сложения, будет вызвана BINARY_OP? Сколько раз нужно потом сложить строки, чтобы оптимизация стала BINARY_OP_ADD_UNICODE? 2) Как я понял ошибку с += для tuple, она возникает из-за того что мы после изменения списка, пытаемся присвоить "новый" список, вместо старого. Но если посмотреть id списка до += и после, то id совпадает, что намекает что список как объект остается тем же. Т.е. проблема в том что мы не можем менять объект, даже если это тот же самый объект?
1) да, fallback в BINARY_OP предусмотрен 2) tuple не определяет *никаких* методов для мутации себя. сравнение значений даже не успевает произойти. метод не найден, ничего не вызывается :(
Сложно! Нужно самому операции ручками в дерево написать, чтобы зашарить. В целом про это знаю, но походу пока по полочкам не разложишь, не зашаришь по настоящему. Не уверен что это зачем то когда то мне понадобится, но почему бы и нет?) Спасибо за ролики кста!
Безмерно уважаю Лучиано. Кстати, я как-то приглашал его к нам на конференцию: ruclips.net/video/5L4naRxKuKw/видео.html Была возможность пообщаться с ним, от чего уважения только прибавилось :)
Нужен разбор typeshed!
Звук стал лучше, да? :)
да. и про typeshad тоже давай
Звук стал идеальным! Спасибо Никита!)
Ага, крутой пб-фильтр, тоже-б таким обзавелся 😉
Походу я понял, чтобы вырасти из middle и стать senior на Python, мне нужно выучить C! =)
Очень неожиданно!
Пока о таком глубоком подходе и не думалось даже.
Спасибо!
Никита, отличная лекция. Спасибо большое!
Очень интересно! Показывает сколько де я ещё не знаю 👍👍
Спасибо!
typeshed упоминал и Рамальо, но что это в деталях, послушала бы конечно
Спасибо за канал! Это лучшее, что видела по питону.
Ставлю два лайка!
очень необычный и интересный курс, спасибо
Просто Боженька!
Требуем Typeshed и обзор языка программирования Mojo
не обращайте внимания на это комментарий, кто я такой чтобы требовать
Спасибо большое!
Хотел бы выразить благодарность, за подобные видео! Про кишки Питона очень мало информации в популярном виде в видеоформате.
Но пока вопросов больше чем ответов ))
1. Через import ast показана структура аст-дерева.
Это какое-то предмтавление или это реальный код с которым работает интерпретатор?
2. Модуль ast.py внезапно написан на питоне, значит ли это, что ast строится питонячьим кодом? Да не, не может такого быть ))
3. Показан пример Питоновской грамматики (как я понял используется парсером на этапе постороения ast)? Что это за файл такой, где взять ?)
4. Ещё не понимаю на каком этапе создаются объекты. В ast дереве например
right=Constant(value=2) - это просто как литерал рассматривается или есть уже объект?
Понятно, что для чисел есть уже зарезервированные изначально объекты в некотоом диапазоне, но если взять к примеру строку?
5. _PyLong_Add - сложение дух чисел (интёрналсиайпи метод [Чта?])) и x_add сложение двух чисел. Что есть что ?
1. да, реальные объекты ast, которые потом компилируются в байткод
2. _ast - написан на С со всеми базовыми типами, которые генерятся из `Python.asdl`, ast - написан на питоне, re-export'ит типы из _ast
3. `python.gram`
4. Объект типа `ast.Constant` в объект `int` он превратится позже
5. _PyLong_Add - internal C-API для сложения двух PyLong (int) объектов
@@sobolevn круто! Спасибо за ответ !)
Разбор typeshed был бы очень уместен и приятен.
Хотел бы разбор библиотеки typeshed!
Кайф, кайф, давай ещё
На 12 минуте притом если использовать метод extends для мутирования списка исключения не будет
1) Если после оптимизации сложения до BINARY_OP_ADD_INT мы сложим строки, то после неудачного сложения, будет вызвана BINARY_OP? Сколько раз нужно потом сложить строки, чтобы оптимизация стала BINARY_OP_ADD_UNICODE?
2) Как я понял ошибку с += для tuple, она возникает из-за того что мы после изменения списка, пытаемся присвоить "новый" список, вместо старого.
Но если посмотреть id списка до += и после, то id совпадает, что намекает что список как объект остается тем же. Т.е. проблема в том что мы не можем менять объект, даже если это тот же самый объект?
1) да, fallback в BINARY_OP предусмотрен
2) tuple не определяет *никаких* методов для мутации себя. сравнение значений даже не успевает произойти. метод не найден, ничего не вызывается :(
Никита, спасибо за курс! Есть понимание сколько всего будет уроков и как часто они будут выходить?
Надеюсь, что где-то 50 выпусков. В среднем раз в неделю, иногда чаще, иногда реже.
интересно подробнее про typeshed
Хочу typeshed, уважаемый Никита!
Будет, думаю, что сразу после `float` :)
Коментарий продвижения. Я конечно как в том меме "... не понятно, но очень интересно". 😀😀😀😀😀😀😀
Сложно! Нужно самому операции ручками в дерево написать, чтобы зашарить. В целом про это знаю, но походу пока по полочкам не разложишь, не зашаришь по настоящему. Не уверен что это зачем то когда то мне понадобится, но почему бы и нет?)
Спасибо за ролики кста!
Здравый контент
Никогда не пользовался typeshed
а зачем return self.__class__, если
@dataclass
class Number:
n: int
def __add__(self, other):
return self.n + other
корректен?
Они делают разное: `self.n + other` вернет чистое значение, `self.__class__(self.n + other)` вернет `Number` (или его подкласс) со значением внутри.
@@sobolevn да, поторопился спросить, спасибо
подскажите пожалуйста, почему в 3:46 срабатывает radd?
Подкласс с `__radd__` имеет приоритет над базовым классом с `__add__`
11:56 Это пример из книги (Python к Вершинам Мастерства 2016 года) недавно перечитывал второе издание
Безмерно уважаю Лучиано. Кстати, я как-то приглашал его к нам на конференцию: ruclips.net/video/5L4naRxKuKw/видео.html Была возможность пообщаться с ним, от чего уважения только прибавилось :)
Не знаю что такое typeshed. Но это и не удивительно, я мало что знаю
А вот и видео про него вышло!
Что такое _Т_
какое T? :)
Пиво
Контент классный, но со звуком беда, оч тихо.
Я сделал громче, относительно первых видосов. Нужно и дальше улучшать. Кажется, что в моем случае проще купить другой микрофон.
@@sobolevn У меня всё ок, слушаю на 20% и всё слышно