__new__ или __init__ в Python? Знаете ли вы это..

  Рет қаралды 36,652

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

Пікірлер: 120
@non5309
@non5309 2 жыл бұрын
Курсов ООП как грязи уже. На том же степике уже есть два курса. Еще один готовится к выпуску. Базовых и продвинутых курсов по питону дочерта уже. А вот чего не хватает так это проф. курсов. Типа ассинхронка, работа с потоками/процессами, работа с БД. Я бы купил хороший проработанный курс по этим темам. Но, увы, их нет. Есть конечно всякие тяжеловесы типа яндекс.практикум или по подиске скиллбокса, но это немного не тот формат.
@zproger
@zproger 2 жыл бұрын
Спасибо за идею по асинхронности. Этот курс есть в планах, но сейчас основная задача это добавить много материалов как и в приват, так и в курс ооп, на счет того что курсов много это да, но это не совсем тот материал, который я хочу реализовать в след.обновлениях.
@evalinor
@evalinor 2 жыл бұрын
Классная история "не могу рассказать фишки, потому, что ютуб забанит", улыбнуло)
@zproger
@zproger 2 жыл бұрын
Можете погуглить например инструмент LIEF, который есть в приват канале. По правилам ютуба обзор на такое не сделать, также как и на инструменты для анализа и обратной разработки.
@brothersstudio3566
@brothersstudio3566 2 жыл бұрын
некоторые ОСИНТы и прочие граничащие с вредоносными ботами/взломами или даже не слишком очевидным пентестом - блокируются ютубом.
@ВиталийКоновалов-г1ц
@ВиталийКоновалов-г1ц 2 жыл бұрын
Спасибо! Все видео норм, с большим углублением в темы чем на других каналах.
@zproger
@zproger 2 жыл бұрын
Благодарю, рад что понравилось
@Крайзис777
@Крайзис777 Жыл бұрын
Я не знал отличия, удобно. Классный пример с кортежем.
@memoryundone
@memoryundone 2 жыл бұрын
Спасибо за видео! До этого знал конечно про дандер методы эти и также то что new вызывается раньше init и возвращает именно экземпляр класса, но не задумывался об тонкостях работы с этими методами, а также об super(). После видео стало понятно когда и как это можно использовать.
@МихаилПетровичЗубенко-р9в
@МихаилПетровичЗубенко-р9в Жыл бұрын
Спасибо, видео оказалось реально полезным!
@zproger
@zproger Жыл бұрын
Благодарю, значит не зря старался :)
@andriivozniuk4834
@andriivozniuk4834 Жыл бұрын
фишки пайтона/технология которую запретил ютуб, никогда о таком никто не говорил. реально внезапный поворот...
@Biolog3000
@Biolog3000 2 жыл бұрын
Как жалко ,что на таком понятном и крутом видео так мало лайков. А ведь кому-то реально было полезно ,но он не поставил лайк . Честно не понимаю почему люди всеравно не поддерживают автора.
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg 2 жыл бұрын
Очень интересно и познавательно)))
@zproger
@zproger 2 жыл бұрын
Благодарю
@dima.kasper
@dima.kasper Жыл бұрын
Ваша программа становится настолько глубокой, что мало кто сможет в ней разобраться. Даже вы через 2 недели😂😂 А если серьезно, то метапрограммирование это очень мощно и действительно позволяет крутить мутить как угодно. А еще цитата Лучано Ромальо, автора Fluent Python: “Метаклассы не нужны 90% разработчиков. А остальным 10% они не нужны в 90% случаев.“
@brothersstudio3566
@brothersstudio3566 2 жыл бұрын
Ребята, не реклама. Я учу питон чуть больше полугода (7.5 месяца) уже работаю по профилю. Так вот, в свое время я нашел курс данного человека (конечно, слитый, но все же) (да я его тоже покупал, просто у инфоцыган как это водится). Хочу дать отдельную благодарность человеку с этого канала за такой курс (к слову, то его старый, если он его зарефакторил, то я даже представить не могу насколько он стал крутым). Ни у одного человека я не видел курса ООП лучше. Причем, подход в 3-7 минут идеален, т.к ты точно знаешь что в видосе и тебе не нужно мотать 20-30-40 минутные видосы, где в т.ч очень много воды. У канала незаслуженно мало подписчиков, хотя рассказывает человек очень хорошо ( особенно на фоне его старых видосов) и показывает то, чего не показывает практически никто (я за тонкости, например те же прокси, когда в свое время мне нужно было для модуля реквестов в начале своего пути). Да, много "повторений", но и у него публика не шибко большая, плюс он всегда что-то дополняет, даже если повторяет. Так что если действительно ищете хороший курс - он не врет, он у него действительно отличный. Всем бобра, а автору жирный лайк.
@zproger
@zproger 2 жыл бұрын
Благодарю за комментарий, буду стараться и дальше улучшать уровень контента
@Accusan
@Accusan 4 ай бұрын
Подскажи где купить слив пожалуйста
@diz996
@diz996 2 жыл бұрын
Хорошее видео, я подумаю над твоим предложением )
@zproger
@zproger 2 жыл бұрын
Рад что понравилось =)
@gilman2056
@gilman2056 2 жыл бұрын
Забавно, 3 недели прошло с последнего просмотра видео, тогда было мне бесполезно, но сегодня решил досмотреть и понял, что для меня как-раз сейчас актуально, так-как нужно подключение к базе реализовать в разных местах, а подбрасывать объект через атрибуты надо далеко в глубь, хорошо, что не забыл упомянуть как пример где этот шаблон используется
@seoonlyRU
@seoonlyRU 2 жыл бұрын
лукасик от СЕООНЛИ
@alexartiushkin2865
@alexartiushkin2865 2 жыл бұрын
ці речі мали би вивчатися на початку вивчення пітона. І все-все було б набагато зрозуміліше. Це сі-подібні штуки, близькі до залізяччя. Коли __new__ бере шмат пам'яті з кучі, структурує, створює простір імен. Привласнює результат змінній. А потім __init__ в цю заготовку напихує зміст - прикладні атрибути. А, і головне. Якщо розібратися, що таке клас, то клас якби і є сінглтон. Робити потім інстанс - це двічі зберігати одне й те ж в пам'яті.
@zproger
@zproger 2 жыл бұрын
Вот если без инита реализовать атрибуты, то он будет реально вести себя как синглтон и возвращать старые адреса, чтобы экономить память. Но при использовании init поведение меняется. В остальном же согласен на 100%
@chicago_typewriter
@chicago_typewriter 2 жыл бұрын
Автор, подскажи плз как именно называется твой курс на степике?
@zproger
@zproger 2 жыл бұрын
В разделе "о канале" есть ссылка на степик, но самый актуальный курс по 1й ссылке в описании под этим видео, именно там будут все обновления и т.д
@plumber_from_forbs
@plumber_from_forbs 2 жыл бұрын
Фишки запрещены KZbin 😂
@zproger
@zproger 2 жыл бұрын
Я не шутил, многие инструменты ютуб не одобрит и просто заблокирует видео
@rokot
@rokot 2 жыл бұрын
Сухая сжатая информация плохо усваивается. Нужны примеры. И моя проблема, что когда я смотрю на класс, я спрашиваю себя как это можно переделать на функции, то есть я пока не нашёл ни одного примера, когда без класса не обойтись. Поэтому в классах я плох. Но очень хочу подрасти в этом вопросе. Но мне нужны весомые примеры с демонстрацией мощи классов, где бы показывалась ущербность функционального подхода. Чаще программы на функциях выглядят короче, чем на классах, поэтому я использую функционалку. Мне нужен такой пример, когда программа на классе стала бы короче, чем такое же на функциях.
@zproger
@zproger 2 жыл бұрын
В ближайшем видео покажу почему классы это огонь)
@tolia5587
@tolia5587 2 жыл бұрын
В простых программах классы реально не нужны. До недавнего времени тоже считал, что ооп это бесполезно. Но когда начинаешь писать что-то большое, ооп это очень удобно
@edgarfedosov1440
@edgarfedosov1440 2 жыл бұрын
Windows API - прекрасный пример того, как "удобно" на функциях делать, например, интерфейс. Когда любой элемент управления - это не класс, а 100500 функций и 100500 типов данных.
@alexandermartin5694
@alexandermartin5694 2 жыл бұрын
При программировании игр классы имеют серьёзные прюсы, во всём остальном можно действительно обойтись функциями, без заморочек с классами. Классы и были разработаны для GameDev, так как прогммирование одними функциями приводит неизбежно к тупику.
@drimmwald4483
@drimmwald4483 2 жыл бұрын
Доброго времени суток, замечал что автор часто отвечает на комемнты, у тебя отличный контент, очень много фишек узнал только благодаря тебе. Возможно дашь совет или подскажите книгу или курс по ООП, который помог в изучении данной темы, желательно бесплатный, не то что бы мне денег жалко.. живу просто в городе где нет банковской системы в связи с последними событиями..
@Shadowfight-z5f
@Shadowfight-z5f 2 жыл бұрын
0:20 Я вообще не топовый и даже можно сказать не разработчик. Однако довольно быстро въехал что __new__ первым аргументом ссылается на класс, а __init__ на экземпляр класса
@zproger
@zproger 2 жыл бұрын
Это хорошо
@Igor_UA
@Igor_UA 2 жыл бұрын
На 3:08 есть упоминание о фишках, которые запрещены KZbin - ом... Что это может быть?
@zproger
@zproger 2 жыл бұрын
Технологии по обходу различных защит например)
@jonnash1683
@jonnash1683 Жыл бұрын
Разве cls не ссылка на сам класса, а self - на экземпляр?
@zproger
@zproger Жыл бұрын
В видео разве не так сказал?
@jonnash1683
@jonnash1683 Жыл бұрын
@@zproger Прошу прощенья, если ошибся. Сейчас пересмотрю!
@YourCloseCoop
@YourCloseCoop 2 жыл бұрын
Привет, Погер, есть реально важный вопрос Что такое __long__ метод? Он существует и, как написано, должен приводить число к типу long, хотя такого типа нет. Как факт, его pycharm подсвечивает как переменную, а числа можно использовать с буквой L и l как unsigned и signed (так написано): 56L, 4l. Снимешь об этом видео или упомянешь, пожалуйста ;)
@YourCloseCoop
@YourCloseCoop 2 жыл бұрын
Это дундер-метод: ___long___
@zproger
@zproger 2 жыл бұрын
Он уже не поддерживается в Python3, так как всё происходит автоматически, это в Python2 надо было играться руками)
@YourCloseCoop
@YourCloseCoop 2 жыл бұрын
А, хорошо, спасибо)
@usakabi3843
@usakabi3843 2 жыл бұрын
Добрый день,вопрос по языку питон,как разшифровать pyarmor,есть ли какой-то способ?
@zproger
@zproger 2 жыл бұрын
Способ есть, но я еще его не проверял) Возможно дойдут руки и залью его в приват канал
@usakabi3843
@usakabi3843 2 жыл бұрын
@@zproger а сколько стоит доступ в приват канал ?
@zproger
@zproger 2 жыл бұрын
Он идет вместе с курсом ооп, более подробная информация по первой ссылке в описании. Можете также задать вопрос в чате на сайте.
@zproger
@zproger 2 жыл бұрын
Ок
@usakabi3843
@usakabi3843 2 жыл бұрын
@@zproger проверил ?
@auril1594
@auril1594 2 жыл бұрын
интересно бывает посмотреть такие видео про небольшие приколы в питоне. единственное, tuple comprehension не существует, там было generator expression в конструкторе кортежа :)
@zproger
@zproger 2 жыл бұрын
=))
@Himera1983
@Himera1983 8 ай бұрын
я так и не понял магические методы. Почему и как они существуют но мы их не видим и почему мы их пишем еще. Например init . Как можно сразу понять? Я даже сформулировать не могу как и что я непонимаю .
@артурволков-ъ9н
@артурволков-ъ9н 2 жыл бұрын
Интересный и не понятный пример) Автор говорит, что в методе __init__ нельзя переписать множество поэлементно потому что оно не изменяемо, в то время как в методе __new__ возможно, хотя не смотря на все там происходит создание нового множества, что по сути и будет происходить в __init__ если не притягивать пример непонятно куда за уши и написать в лоб self=[for i in list_in]. Если мое понимание является не верным, с радостью приму КОНСТРУКТИВНУЮ критику.
@артурволков-ъ9н
@артурволков-ъ9н 2 жыл бұрын
Если не ошибаюсь то идеологию иммутабельности никак не обойти, под копотом яблоко то оно и будет яблоком как бы вы его не красили в оранжевый. Умные дядьки не просто так сделали подобные вещи и зачастую если хочешь менять множество часто то тебе нужно не множество) Если хочешь редко то без велосипедов перезапиши) Если хочешь усложнить свой код, то вот тебе волшебные методы, развлекайся) Круто конечно что дается доступ к такому разнообразию предопределенных методов, но ребят основная проблема питона в возможности писать код как хочешь, но именно поэтому не стоит его перегружать там где не надо)
@zproger
@zproger 2 жыл бұрын
Без проблем можно создать такую переменную и в init, просто это самый наглядный способ показать как new работает, да и сами значения записывались напрямую в self, что без new и наследования не сделать
@gmd3232
@gmd3232 2 жыл бұрын
А есть ли в питоне модификаторы доступа?
@zproger
@zproger 2 жыл бұрын
Да, в Python можно делать приватные и защищенные атрибуты. Это не назвать прям полноценными модификаторами доступа, но они позволяют сделать похожий функционал.
@cody__9115
@cody__9115 2 жыл бұрын
Чувак, ты конечно молодец, и твои видео реально классные, но не маловато у тебя опыта в разработке чтобы продавать курсы? 4-5 лет это уровень Мидла, а это мало чтобы вести свои курсы, таких берут в geekbraince и тд а там увы обучение не ахти
@zproger
@zproger 2 жыл бұрын
Спасибо за комментарий. Этого опыта более чем достаточно чтобы сделать такой курс по ооп, который не сделает никто, я по крайней мере не видел еще ни одного полного курса по ооп, который бы раскрывал столько тем, которые раскрывает мой курс. Да и к тому же, чтобы рассказать об ооп не надо 20 лет опыта иметь.
@blackcatdevel0per
@blackcatdevel0per Жыл бұрын
Сделай ещё видос по метаклассам и работы с ними, динамическую генерацию классов, и динамическую генерацию классов с метаклассами)))
@mrslashx
@mrslashx 2 жыл бұрын
Я new понял сразу а вот инит сидел и не мог понять долго
@zproger
@zproger 2 жыл бұрын
Обычно бывает наоборот)
@rokot
@rokot 2 жыл бұрын
Я к init и self отношусь, как необходимому злу, которое нужно прописать, чтобы класс начал свою жизнь. Но мне кажется, что разрабам языка можно было это убрать, и сделать опциональным, то есть если программисту нужно указать new, он указывает, а по умолчанию init уже стоит. Если смотреть саму историю появления классов, то мы видим, что это стало возможным ради того, чтобы язык стал учебным. Без классов его не могли преподавать в университетах. Учебный язык означает, что в нём есть всё для получения грамотности программирования. Чтобы студент мог с лёгкостью перепрыгнуть в другой язык. Для этого в языке должно существовать всё, что есть в других языках, в плане парадигмы. Объявление классов, открытие файлов, match - должно быть похожим как в других языках. Учебный истребитель похож с боевым только в плане управления, рычажки такие же как на боевом. Когда язык стали преподавать в западных университетах, он быстро достиг первых строг рейтинга.
@МаксКар-н2ц
@МаксКар-н2ц 2 жыл бұрын
Половина видео реклама своих курсов. Как я этого ждал, ауено. Больше рекламы, больше...
@zproger
@zproger 2 жыл бұрын
Рекламу можно пропустить если что одним нажатием ЛКМ =)
@MAKSIM24251
@MAKSIM24251 2 жыл бұрын
супер!
@zproger
@zproger 2 жыл бұрын
Благодарю
@voruto1068
@voruto1068 6 ай бұрын
Я думал это объяснение инита🙃
@gmd3232
@gmd3232 2 жыл бұрын
А зачем нужна папка pycache?
@dmitriyneledva4693
@dmitriyneledva4693 2 жыл бұрын
очень крутое видео
@zproger
@zproger 2 жыл бұрын
Благодарю!
@gryphon175.yakusha9
@gryphon175.yakusha9 Жыл бұрын
видемо я еще не дорос чтоб понимать происходящее
@КириллЧе-я5ы
@КириллЧе-я5ы Жыл бұрын
New не стоит использовать никогда🥴 имхо… даже в плюсах это близко к депрекейт. Нефих вручную управлять памятью, раии никто не отменял. И контекст менеджер также лучше работает с ресурсами…
@gmd3232
@gmd3232 2 жыл бұрын
Как использовать numba с ООП?
@ivanosinin5050
@ivanosinin5050 2 жыл бұрын
__new__ в питоне как инициализация в плюсах, только гибче
@zproger
@zproger 2 жыл бұрын
=)
@maksimluzin1121
@maksimluzin1121 2 жыл бұрын
Ну, не совсем так... Оператор _new_ в плюсах вызывает конструктор класса, т.е. инициализацию экземляра в памяти, так же, как и __init__ в Питоне. Но __new__ в Питоне помогает вмешаться в процесс выделения памяти и создания экземпляра, а в плюсах - этим занимается отдельная встроенная функция перед вызовом конструктора класса, malloc(...) обычно, которая вставляетсяя в код и обычно вызывается автоматически... Т.е. в Питоне это просто выложили на поверхность, да, для большей гибкости...
@omka4580
@omka4580 Жыл бұрын
Полезно
@Igor_UA
@Igor_UA 2 жыл бұрын
Класс
@zproger
@zproger 2 жыл бұрын
Спасибо =)
@gilman2056
@gilman2056 2 жыл бұрын
запрещены ютубом😅🤣😂.
@zproger
@zproger 2 жыл бұрын
Я серьёзно)
@пчелобавурод
@пчелобавурод 2 жыл бұрын
tuple - т'юпл
@zproger
@zproger 2 жыл бұрын
=)
@maksimluzin1121
@maksimluzin1121 2 жыл бұрын
"тапл", вообще-то... "Закрытый слог", в Инглише... "ю" произносится, как "а"...😉
@юрийступак-х3о
@юрийступак-х3о 2 жыл бұрын
так то видео прикольные, но по две минуты в видео рекламы из 12 минут видео , это жуть
@zproger
@zproger 2 жыл бұрын
Ну а что поделать, если не интересно, можете пропустить
@siiidorov
@siiidorov 5 ай бұрын
познавательное видео для детей не старше 10 лет
@zproger
@zproger 5 ай бұрын
Зачем тогда смотреть такие очевидные вещи?
@Андрей-щ6г2ж
@Андрей-щ6г2ж 2 жыл бұрын
Что же это за технологии, о которых не стоит на ютубе говорить?
@luwqz1
@luwqz1 2 жыл бұрын
___new___ чаще используется в мета классах
@zproger
@zproger 2 жыл бұрын
😉
@IgNatUsiK.official
@IgNatUsiK.official 2 жыл бұрын
Здравствуйте
@zproger
@zproger 2 жыл бұрын
Здравствуйте =)
@СергейГандарин-з9щ
@СергейГандарин-з9щ 2 жыл бұрын
Я вообще нечего не понял.тоны,зкземпляры.А по русски можно.
@zproger
@zproger 2 жыл бұрын
Ну это видео скорее для тех, кто уже смешарик
@СергейГандарин-з9щ
@СергейГандарин-з9щ 2 жыл бұрын
@@zproger А где начало всех начал.Что и как с чего начать,Если этот урок продолжения чем и евляется,естейственно не понятно о чом рерь.
@maksimluzin1121
@maksimluzin1121 2 жыл бұрын
Это базисы теории ООП. Ну, не всё - базисы, но то, что ООП-разработчик просто обязан знать и понимать! Упрощённо говоря, 1. "Класс" - это "шаблон" ("пресс на станке для штамповки пробок для бутылок"). "Экземпляр класса" - это объект в памяти, (т.е. сама готовая "пробка"). 2. "Синглтон" - это один из шаблонов разработки в ООП, который описывает, как создать один единственный экземпляр класса во всей программе, независимо от того, сколько раз будут попытки его создать (причём, во всех языках ООП). Иногда это очень полезно... См. : Паттерны проектирования, Design Patterns ("Банда Четырёх").
@serobrine
@serobrine Жыл бұрын
​@@СергейГандарин-з9щ ты сначала русский выучи
@DevALine
@DevALine 2 жыл бұрын
+
@zproger
@zproger 2 жыл бұрын
=)))
@DevALine
@DevALine 2 жыл бұрын
@@zproger ;)
@rsmz20
@rsmz20 2 жыл бұрын
Z в начале названия вашего канала надеюсь не имеет ничего общего с нынешней ситуацией между Россией и Украиной
@zproger
@zproger 2 жыл бұрын
Конечно нет) нику 3 года уже
@rsmz20
@rsmz20 2 жыл бұрын
@@zproger Тогда я спокоен, очень круто объясняете,мне как новичку, больше чем понятно. Продолжайте развивать контент в том же духе.
@LiftBuff
@LiftBuff 2 жыл бұрын
@@zproger Успокоили. А то жалко было бы, контент у вас хороший. Кстати, многие поменяли подобные ники, так как букву Z сильно зашкварили, как некогда свастику.
Как избавиться от циклов импорта в Python
13:09
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
PYTHON MAGIC METHODS. __INIT__ и __NEW__
14:53
luchanos
Рет қаралды 6 М.
__new__ vs __init__ in Python
10:50
mCoding
Рет қаралды 211 М.
Магические методы в python. Dunder методы
1:00:45
Метаклассы в Python
30:25
Rineisky Dev
Рет қаралды 6 М.
Я сделал ИИ для Aim Lab и она его уничтожила :3
17:04
Хауди Хо™ - Просто о мире IT!
Рет қаралды 463 М.
Expert Python Tutorial #3 - Metaclasses & How Classes Really Work
20:41
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН