Python Clinic
374 subscribers
1 video
62 links
стримы, где всегда можно задать любой вопрос по python или it в целом, или просто послушать несмешные шутки - https://www.twitch.tv/verdantbyte
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
я так и выучил
😁171
сегодня мы разводим срач по поводу инкапсуляции, присоединяйтесь - https://www.youtube.com/watch?v=pM6pitwYYto
👍6🔥1
а я вам тут ещё видос про работу памяти принёс - https://www.youtube.com/watch?v=_3ArtfZmjZk

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

про работу с памятью будет ещё минимум два видоса, а ещё на этой неделе выйдет просто таки магнум опус о сравнении VSC и PyCharm, так что stay tuned
❤‍🔥11👍4
Итак, как и обещал мой магнум опус этого месяца, огромное сравнение PyCharm и VSC. Но в этом канале, чисто по знакомству, я открою вам маленький секрет. Я не люблю ни один IDE. Они все стрёмные. Мои первым IDE был C++ Builder, на тот момент это просто блокнот с кнопками compile, run и debug. Там не было никаких подсказок при написании кода, и только после компиляции в редакторе появлялась подсветка синтаксических ошибок. И это в целом было терпимо, но сам процесс компиляции занимал достаточно много времени (в чём напрямую Builder не виноват), можно было спокойно успеть сделать себе чай. После этого я работал с разными IDE, от WebStorm до Visual Studio Professional, и с каждым поколением они становились умнее и тупее одновременно. Чем больше IDE берёт на себя, чем больше она пытается помочь программисту, тем больше херни она неизбежно порет. Подсказки часто идут невпопад, процесс дебага зависит от абсолютно лишних параметров, а добавление ИИ позволит IDE советовать ещё больше всякого дерьма. К чему я это? Ну точно не к тому, что нужно писать в блокнотике. Скорее я хотел бы вас проагитировать попробовать как можно больше разных инструментов и сделать осознанный выбор. Ну и немного помощи от меня в виде нового ролика - https://www.youtube.com/watch?v=g4tbgZvp1nw
👍11💯1
Ну что, продолжаем наш месячник работы с памятью в пайтон, на этот раз я расскажу о том, как в пайтон память экономится буквально на каждом шагу. Собственно поэтому я и называю подход к работе с памятью в пайтон экологичным, всё что может быть переиспользовано - будет переиспользовано. Не то чтобы эти знания кардинально изменили ваш или чей-либо подход к написанию программ, но возможно кто-то будет спать спокойнее, зная что интерпретатор делает всё возможное, чтобы не допустить переполнение памяти. А кто-то сможет блеснуть этими знаниями на интерьвью. Ну или просто маму с папой порадовать.

https://www.youtube.com/watch?v=iallCQH-FLU

На следующей неделе будет финальное видео в этой серии, я расскажу о том, как работает сборка мусора в пайтон. Перед этим видео, прямо как перед фильмами марвел, нужно будет пересмотреть все предыдущие части))
👍91
Я вообще люблю ооп, как со стороны написания кода, так и со стороны преподавания. Но даже мне, несмотря на мой огромный опыт и того и другого, иногда трудно объяснить нафига нам нужны проперти)) Ведь код можно спокойно писать и без них, и иногда он получается даже более компактным и читаемым. Зато с проперти он будет красивым и прямолинейным с точки зрения испоьзования, и это тоже важная характеристика, пусть и не для всех. В новом видео я рассказываю, как и зачем их применять, и опять-таки, кому-то эта вещь доставит удовольствие, а кому-то пригодится только для подготовки к интервью или просто для общего развития. В любом случае - смотрим и комментируем)

https://www.youtube.com/watch?v=4cQR23PZi9I
👍12
Последний рывок к пониманию того, как python работает с памятью - сборка мусора. Вообще это одна из сложнейших тем для любого современного языка с автоматическим управлением памятью, но я постарался упростить и структурировать подход, применяемый \ в python (он, скажем так, неоклассический, все необходимые атрибуты сборки мусора на месте, но сам алгоритм облегчённый, и объекты не удаляет, для этого есть отдельный механизм).

https://www.youtube.com/watch?v=a_ZBO_bqvB0

Это последнее видео в серии, так что не забудьте пересмотреть все остальные, ну и делитесь этим видео со всеми, кому это может быть интересно, так вы поможете каналу развиваться.
👍10🔥1
Итак, тема для очередного срача)) Свет против тьмы, огонь против льда, компиляторы против интерпретаторов.

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

P.S. сабнейл моя личная гордость, потому что в нём удалось сфокусировать очень много смыслов для именно этой темы))

https://www.youtube.com/watch?v=lwRuJ7fTaLc
👍6
Channel photo updated
произошёл дизайн)
👍19
Открываем новую большую тему - параллельное программирование. Расскажу вам о процессах, потоках и всем, что помогает/мешает с ними работать.

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

https://www.youtube.com/watch?v=uySEPEzpomk
👍9
Вообще кому-то дескрипторы могут показаться и перебором, но точно не мне)))

И всё-таки, лучше их использовать в комплекте с наследованием, чем без него. Так можно будет строить целую метавселенную - из типов данных, которые нужны только для того, чтобы описывать логику инкапсуляции. Но в целом можно и без него, хоть и сильно на любителя. В ролике я объясняю в основном технические нюансы использования, рано или поздно дойдём и до наследования тоже

https://www.youtube.com/watch?v=tVx2UIwl_50
👍71
https://www.youtube.com/watch?v=1ke2pUpwOYc

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

К слову о хардкоре. На этой неделе так же выйдет видео о модуле dis, и это просто бомба, я наверное даже не удержусь и запаблишу его немного раньше обычного, stay tuned чтобы не пропустить!
👍9
вот и оно - видео о модуле dis и собственно дизассемблинге кода на пайтон

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

при этом пайтон достаточно простой язык даже с этой точки зрения, и станет отличной отправной точкой для понимания работы стэка выполнения и программирования в целом

P.S. это видео - одно из самых длинных и сложных в плане реализации и исполнения за всё время, я буду благодарен, если вы поделитесь им, ютуб-каналу осталось совсем немного до 1к подписчиков

https://www.youtube.com/watch?v=7WawuzR0rMs
12👍5
Процессы по определению работают в независимых областях памяти, в этом весь смысл. Но иногда данные между ними всё же нужно разделить, и их буквально нужно заставить пропихнуть данные через дополнительные инструменты. Вообще самый простой способ добиться этого - обратиться к долговременной памяти, то есть тупо сохранить что-то в файл. Но у этого подхода есть куча недостатков, мы упираемся в файловую систему, формат файла и неизбежную борьбу за ресурсы. Впрочем, о борьбе за ресурсы мы поговорим на следующей неделе, а сегодня я покажу, с помощью каких объектов можно делить данные непосредственно в памяти. Но помните, что это искусственный процесс, который сопряжён с копирование данных, что не добавляет оптимальности вашим алгоритмам.

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

https://www.youtube.com/watch?v=F82h8somY_0
👍92
Сегодня у нас немного непривычный формат, я рассказываю о методологии. Такие вещи важно знать, чтобы с одной стороны не оказаться слишком интересной личностью в коллективе, которая использует совершенно не тот набор инструментов, который принят на проекте или в компании, а с другой стороны чтобы иметь хоть какие-то альтернативы при выборе решения. Как я и говорю в видео, я пользуюсь в равной мере обоими подходами, но мозг у меня больше думает в стиле EAFP))

https://www.youtube.com/watch?v=HJN2vUonkNA
6👍2