Узнал об авторе недавно, на одном из подкастов для «Хитрый Питон». Был удивлен не тем, какие сложные и важные проекты разрабатывает и в какой тусовке варится, а на сколько грамотно и приятно разговаривает. Воодушевляет к саморазвитию. Видос классный и познавательный. Жду еще
Спасибо! Зашло! Сложноваты некоторые моменты, но решается путем пересматривания))) Курс может получиться бомбически глубоким. И еще раз спасибо, что заставляете мой мозг скрипеть)) развиваться и выйти из зоны комфорта... и за звук поддержу: если это удобно - сделайте, плиз, по выше уровень громкости.
Формат превосходный, контент уникальный! Название курса полностью оправдано. Ведь это разработчик ядра снизошёл до нас, простых смертных, и разбирает всё досконально. Это вам не лапша от «синьёра за 3 года» 😼
Спасибо за видео. Хочется отметить что за первое видео было сказано 4 раза «это рассмотрим в следующих уроках». Надеюсь, это где-то будет отмечено и действительно все 4 вопроса появятся когда-то потом в виде отдельных уроков или в примерах других уроков, потому что обычно те кто делают такие серии видео - забывают об обещаниях. Никита, надеюсь вы так не будете делать и не забудете:)
Спасибо огромное за курс! Это фантастика! Начал пробовать, оказывается в python3.11.10 магический метод int не поднимает исключения если его вызвать отдельно и передавать в нём строку def __int__(self) -> int: return "hello" print(MyNumber(5).__int__()) В python3.13.0 так же
О, только недавно узнал про Никиту Соболева из видео на канале Егора Бугаенко. Классное видео получилось! Спасибо! А тут ещё и курс есть по питону, круто. А чем он лучший? Более подробно разжёвано или глубже погружение в язык или практику?
17:17 - гм, эти "цифры" же с максимумом у каждой 2^15 или 2^30? Как смог понять беглым поиском по исходникам (полез смотреть после странной фразы про "10 будет представленно как цифры 1 и 0", это видимо упрощение которое не все поймут как упрощение). Но почему именно 15/30 бит, а не весь int16_t/int32_t которым typedef'нут digit - не понял.
На счёт последнего пункта про оптимизацию хотелось бы уточнить. Если я пытаюсь сложить числа через магический метод, то в байткоде подгружается метод __add__ import dis dis.dis('(1).__add__(2)') 1 0 LOAD_CONST 0 (1) 2 LOAD_METHOD 0 (__add__) 4 LOAD_CONST 1 (2) 6 CALL_METHOD 1 8 RETURN_VALUE Правильно ли я понимаю, что в первом случае магический метод не вызывается. Или всё таки где-то на стадии оптимизации всё равно вызывается ?
@@sobolevn посмотрел видео '+'. Попробовал распарсить в аст-дерево 1 + 2... Выражение получилось такое: Expr( value=BinOp( left=Constant(value=1), op=Add(), right=Constant(value=2))) Вот этот оператор Add() - это что за эдд ?)
Чё это… я hex() и bin() пользовался часто, особенно когда работал с железом! Стоит упомянуть еще zero fill, но это для строк скорее, хотя полезно для hex dump’ов выровненных.
Хороший вопрос. Разница вот в чем: > If x is not a float, delegates to x.__trunc__, which should return an Integral value. docs.python.org/3/library/math.html#math.trunc `__int__` должен вернуть `int`, `__trunc__` -> `numbers.Integral`, можно вернуть другой (свой) тип.
Програмирую на Python год с лишним, и язык не поворачивается поставить свой опыт выше джуна, и вот почему: - Когда ты сказал "Какие __магические__ методы превращают объект в int" я понял что за все время знакомства с Python я к примеру так и не смог в своей голове ясно сложить пазл на предмет что же такое магические методы, и вообще о какой магии здесь идет речь, ну подумаешь два подчеркивания с одной стороны два с другой, в конечно счете это просто название. Если ты сможешь сделать видео на эту тему быд бы очень признателен - Так же не понимаю про предикаты @protocol @abstractmethod и им подобные, в чем их приемущество, где они выстреливают и как, да и в конце концов, что за название протокол, что за этим стоит, набор правил или что? - Мой мозг так же взрывает концепция слотов, что за название и в чем идея, что за парадигма такая slot - Где искать стандартаные файлы Python и как к ним правильно обращаться для анализа(прим. numbers.py в conda environment Ubuntu)? - Было бы класно если бы ты смог поделиться опытом исследования python с применением dis и возможно других техник. С Уважением, Макс.
Максим, большое спасибо за отличные вопросы! Во-первых, хочу пригласить вас поучаствовать в ревью учебника по питону для новичков / джунов от моего друга - Гриши Петрова. Если хотите - напишите ему в личку в тг: @grigoryvp По вопросам: 1. "магическими" они называются, потому что явно не вызываются; например `int(A())` неявно или "магически" вызовет метод `A.__int__`. В сравнении с класическим вызовом обычного метода: "A().to_int()` 2. Про протоколы в два предложения не расскажешь :) Потому что есть куча разных штук под термином "протокол" 3. Слоты просто позволяют вам заранее задать структуру объекта 4. Исходники тут github.com/python/cpython 5. Делюсь в каждом видео!
Спасибо за этот замечательный курс. Можешь пожалуйста сделать видео про будущее python, когда его скорость будет сопоставимо со скоростью java (про С не говорю, очевидно почему 😂😂😂)
если это байт или попытка выделиться среди остальных курсов, то удалось! просто в разных проектах участвовал разной сложности и разной предметности и не припомню ситуации, когда эти знания пригодились бы в качестве ознакомления если только это примерно как когда в школе приходили перевод чисел и 10й системы в 2ю основа информатики? да. используется в реальных проектах? в 0.009% случаев а так зачем забивать свою драгоценную память этим? если встретится конкретная задача, где это понадобится -- есть документация зачем делать из себя ходячую документацию?)
Ваше сознание наполнится собственными магическими методами. Это даже не вполне шутка, потому что знание фундаментальных основ влияет на принятие микрорешений. Ну, например, зная, что при создании list заранее выделяется память для его возможного увеличения, вы не будете использовать list там, где вам просто нужна некая всегда фиксированная по размеру индексированная коллекция. И наоборот, вы будете знать, что если коллекция будет увеличиваться, то list будет работать быстрее. И такого много. Вот мне лично здесь про __index__ , например, было интересно.
@@trankov Опять же а для чего вам это? Как много у вас будет создаваться таких коллекций? Сколько памяти вы так сэкономите? А главное для каких задач? На низком уровне такие задачи есть. Но зачем там использовать питон?
@@ГенеральныйСуперинтендант Я однажды принял решение игнорировать религиозные споры, и ни разу с тех пор не пожалел об этом. Вероятно, у Вас есть некоторое важное мнение, которое Вам очень хотелось бы отстоять. Я с уважением отношусь к Вашему праву иметь какое угодно мнение.
@@trankov однако, уже вступили Но я в ответ буду уважать ваше право не отвечать ни на один из моих простых вопросов Причины этого не желания я не буду додумывать за вас
Узнал об авторе недавно, на одном из подкастов для «Хитрый Питон». Был удивлен не тем, какие сложные и важные проекты разрабатывает и в какой тусовке варится, а на сколько грамотно и приятно разговаривает. Воодушевляет к саморазвитию. Видос классный и познавательный. Жду еще
Спасибо за лекцию! Курс который мы не заслужили, но который нам нужен)
Я знаю азы, послушал сенйор часть - замотивировало учиться ещё больше) сплошная магия!
Спасибо! Зашло! Сложноваты некоторые моменты, но решается путем пересматривания)))
Курс может получиться бомбически глубоким.
И еще раз спасибо, что заставляете мой мозг скрипеть)) развиваться и выйти из зоны комфорта...
и за звук поддержу: если это удобно - сделайте, плиз, по выше уровень громкости.
Достойно! Действительно курс отличается от большинства базово-примитивных аналогов. Спасибо!
Формат превосходный, контент уникальный! Название курса полностью оправдано. Ведь это разработчик ядра снизошёл до нас, простых смертных, и разбирает всё досконально. Это вам не лапша от «синьёра за 3 года» 😼
Спасибо за детство, легенда!
Никита, огромное спасибо за твое начинание и за первый курс!)
Желаю удачи! И если можно реши пожалуйста проблему со звуком, ато он достаточно тихий)
Спасибо! Интересно!
По-возможности, звук бы сделать по-громче.
Факт, в следущем видосе сделаем. Нужно докупить оборудования :)
Спасибо за видео. Хочется отметить что за первое видео было сказано 4 раза «это рассмотрим в следующих уроках». Надеюсь, это где-то будет отмечено и действительно все 4 вопроса появятся когда-то потом в виде отдельных уроков или в примерах других уроков, потому что обычно те кто делают такие серии видео - забывают об обещаниях. Никита, надеюсь вы так не будете делать и не забудете:)
Чумовой курс, отдельное спасибо за русский язык!
Единственный курс на ютубе продолжения которого захотелось ждать)💥
Про две реализации Decimal очень интересно было бы послушать.
Спасибо огромное за курс! Это фантастика!
Начал пробовать, оказывается в python3.11.10 магический метод int не поднимает исключения если его вызвать отдельно и передавать в нём строку
def __int__(self) -> int:
return "hello"
print(MyNumber(5).__int__())
В python3.13.0 так же
Да, только недавно добавили ограничения :)
Присоединился после пайтон-митапа от еврона. Чуть не упустил же этот ценный материал)
Да про decimal было бы интересно.
И вообще про работу с числами в контексте финансов.
Может порекомендуешь какой-нибудь материал на эту тему.
О, только недавно узнал про Никиту Соболева из видео на канале Егора Бугаенко. Классное видео получилось! Спасибо! А тут ещё и курс есть по питону, круто. А чем он лучший? Более подробно разжёвано или глубже погружение в язык или практику?
есть нулевое видео с ответами на ваш вопрос
8:20 есть еще иррациональные числа I, подмножество R.
17:17 - гм, эти "цифры" же с максимумом у каждой 2^15 или 2^30? Как смог понять беглым поиском по исходникам (полез смотреть после странной фразы про "10 будет представленно как цифры 1 и 0", это видимо упрощение которое не все поймут как упрощение).
Но почему именно 15/30 бит, а не весь int16_t/int32_t которым typedef'нут digit - не понял.
На счёт последнего пункта про оптимизацию хотелось бы уточнить. Если я пытаюсь сложить числа через магический метод, то в байткоде подгружается метод __add__
import dis
dis.dis('(1).__add__(2)')
1 0 LOAD_CONST 0 (1)
2 LOAD_METHOD 0 (__add__)
4 LOAD_CONST 1 (2)
6 CALL_METHOD 1
8 RETURN_VALUE
Правильно ли я понимаю, что в первом случае магический метод не вызывается. Или всё таки где-то на стадии оптимизации всё равно вызывается ?
Если вы используете явный `__add__`, то оптимизации с `BINARY_OP` не работают :( Используйте `+`
@@sobolevn так, то что оптимизации при явном вызове не работают я понял) Но не совсем понял в случае оптимизации откуда всё таки берётся константа?
@@sobolevn посмотрел видео '+'. Попробовал распарсить в аст-дерево 1 + 2...
Выражение получилось такое:
Expr(
value=BinOp(
left=Constant(value=1),
op=Add(),
right=Constant(value=2)))
Вот этот оператор Add() - это что за эдд ?)
@@mantrida Просто название оператора бинарного + :)
Чё это… я hex() и bin() пользовался часто, особенно когда работал с железом! Стоит упомянуть еще zero fill, но это для строк скорее, хотя полезно для hex dump’ов выровненных.
Хорошее видео
Спасибо, Никита!
Спасибо за курс. Можете объяснить, зачем math.trunc, если int сделает то же самое?
Хороший вопрос. Разница вот в чем: > If x is not a float, delegates to x.__trunc__, which should return an Integral value. docs.python.org/3/library/math.html#math.trunc
`__int__` должен вернуть `int`, `__trunc__` -> `numbers.Integral`, можно вернуть другой (свой) тип.
Никита, а где учить базу? Сейчас мучаю stepik "Поколение Python": курс для начинающих" около 50% прошел
базу можно учить самостоятельно в любом доступном месте. и очень много программировать :)
Или я не так понял,имелось ввиду по основанию?
Подскажи какая тема в vscode?
Моя собственная: github.com/sobolevn/pustota
Тот самый кодер с двумя мониторами уголком
Никита приветствую!
Правда что ли народ не знеат как из str получить int, используя int("3") на 2'10''
Наверно имелось в виду, что не знают про base=
ceil произносится как сил, а не сэйл.
Програмирую на Python год с лишним, и язык не поворачивается поставить свой опыт выше джуна, и вот почему:
- Когда ты сказал "Какие __магические__ методы превращают объект в int" я понял что за все время знакомства с Python я к примеру так и не смог в своей голове ясно сложить пазл на предмет что же такое магические методы, и вообще о какой магии здесь идет речь, ну подумаешь два подчеркивания с одной стороны два с другой, в конечно счете это просто название. Если ты сможешь сделать видео на эту тему быд бы очень признателен
- Так же не понимаю про предикаты @protocol @abstractmethod и им подобные, в чем их приемущество, где они выстреливают и как, да и в конце концов, что за название протокол, что за этим стоит, набор правил или что?
- Мой мозг так же взрывает концепция слотов, что за название и в чем идея, что за парадигма такая slot
- Где искать стандартаные файлы Python и как к ним правильно обращаться для анализа(прим. numbers.py в conda environment Ubuntu)?
- Было бы класно если бы ты смог поделиться опытом исследования python с применением dis и возможно других техник.
С Уважением,
Макс.
Максим, большое спасибо за отличные вопросы! Во-первых, хочу пригласить вас поучаствовать в ревью учебника по питону для новичков / джунов от моего друга - Гриши Петрова. Если хотите - напишите ему в личку в тг: @grigoryvp
По вопросам:
1. "магическими" они называются, потому что явно не вызываются; например `int(A())` неявно или "магически" вызовет метод `A.__int__`. В сравнении с класическим вызовом обычного метода: "A().to_int()`
2. Про протоколы в два предложения не расскажешь :) Потому что есть куча разных штук под термином "протокол"
3. Слоты просто позволяют вам заранее задать структуру объекта
4. Исходники тут github.com/python/cpython
5. Делюсь в каждом видео!
Я советую найти David Beazley "Python Distilled": получите ответы если не на все вопросы, то на большинство из них.
многослойно кнуто!
14:31 sq_concat, а не sq_add :)
10 (максимум 15 (20) минут) :)
ну никак не больше 120!
это не арабская десять, а персидская. арабские - это которыми мы писали со школы.
Привет! Я так понимаю это курс по питону не с нуля?
Да, смотри ЛКПП 0 :)
Спасибо за этот замечательный курс. Можешь пожалуйста сделать видео про будущее python, когда его скорость будет сопоставимо со скоростью java (про С не говорю, очевидно почему 😂😂😂)
если это байт или попытка выделиться среди остальных курсов, то удалось!
просто в разных проектах участвовал разной сложности и разной предметности и не припомню ситуации, когда эти знания пригодились бы
в качестве ознакомления если только
это примерно как когда в школе приходили перевод чисел и 10й системы в 2ю
основа информатики? да. используется в реальных проектах? в 0.009% случаев
а так зачем забивать свою драгоценную память этим? если встретится конкретная задача, где это понадобится -- есть документация
зачем делать из себя ходячую документацию?)
Ваше сознание наполнится собственными магическими методами. Это даже не вполне шутка, потому что знание фундаментальных основ влияет на принятие микрорешений. Ну, например, зная, что при создании list заранее выделяется память для его возможного увеличения, вы не будете использовать list там, где вам просто нужна некая всегда фиксированная по размеру индексированная коллекция. И наоборот, вы будете знать, что если коллекция будет увеличиваться, то list будет работать быстрее. И такого много. Вот мне лично здесь про __index__ , например, было интересно.
@@trankov Опять же а для чего вам это? Как много у вас будет создаваться таких коллекций? Сколько памяти вы так сэкономите? А главное для каких задач? На низком уровне такие задачи есть. Но зачем там использовать питон?
@@ГенеральныйСуперинтендант Я однажды принял решение игнорировать религиозные споры, и ни разу с тех пор не пожалел об этом. Вероятно, у Вас есть некоторое важное мнение, которое Вам очень хотелось бы отстоять. Я с уважением отношусь к Вашему праву иметь какое угодно мнение.
@@trankov однако, уже вступили
Но я в ответ буду уважать ваше право не отвечать ни на один из моих простых вопросов
Причины этого не желания я не буду додумывать за вас
@@ГенеральныйСуперинтендант у нас есть первый микросрачик в истории канала! поздравляю всех причастных 🎉
Сколько всего будет уроков?
около 50, я надеюсь
звук!
Первый нах!
Правду говорят, не понял? прочти опять
Это вам не python за час 😅