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

Поделиться
HTML-код
  • Опубликовано: 15 янв 2025

Комментарии • 120

  • @non5309
    @non5309 2 года назад +45

    Курсов ООП как грязи уже. На том же степике уже есть два курса. Еще один готовится к выпуску. Базовых и продвинутых курсов по питону дочерта уже. А вот чего не хватает так это проф. курсов. Типа ассинхронка, работа с потоками/процессами, работа с БД. Я бы купил хороший проработанный курс по этим темам. Но, увы, их нет. Есть конечно всякие тяжеловесы типа яндекс.практикум или по подиске скиллбокса, но это немного не тот формат.

    • @zproger
      @zproger  2 года назад

      Спасибо за идею по асинхронности. Этот курс есть в планах, но сейчас основная задача это добавить много материалов как и в приват, так и в курс ооп, на счет того что курсов много это да, но это не совсем тот материал, который я хочу реализовать в след.обновлениях.

  • @evalinor
    @evalinor 2 года назад +49

    Классная история "не могу рассказать фишки, потому, что ютуб забанит", улыбнуло)

    • @zproger
      @zproger  2 года назад +5

      Можете погуглить например инструмент LIEF, который есть в приват канале.
      По правилам ютуба обзор на такое не сделать, также как и на инструменты для анализа
      и обратной разработки.

    • @brothersstudio3566
      @brothersstudio3566 2 года назад +2

      некоторые ОСИНТы и прочие граничащие с вредоносными ботами/взломами или даже не слишком очевидным пентестом - блокируются ютубом.

  • @ВиталийКоновалов-г1ц
    @ВиталийКоновалов-г1ц 2 года назад +7

    Спасибо! Все видео норм, с большим углублением в темы чем на других каналах.

    • @zproger
      @zproger  2 года назад

      Благодарю, рад что понравилось

  • @andriivozniuk4834
    @andriivozniuk4834 Год назад

    фишки пайтона/технология которую запретил ютуб, никогда о таком никто не говорил. реально внезапный поворот...

  • @МихаилПетровичЗубенко-р9в

    Спасибо, видео оказалось реально полезным!

    • @zproger
      @zproger  Год назад +1

      Благодарю, значит не зря старался :)

  • @Крайзис777
    @Крайзис777 Год назад

    Я не знал отличия, удобно. Классный пример с кортежем.

  • @Biolog3000
    @Biolog3000 2 года назад +3

    Как жалко ,что на таком понятном и крутом видео так мало лайков. А ведь кому-то реально было полезно ,но он не поставил лайк . Честно не понимаю почему люди всеравно не поддерживают автора.

  • @memoryundone
    @memoryundone 2 года назад +1

    Спасибо за видео! До этого знал конечно про дандер методы эти и также то что new вызывается раньше init и возвращает именно экземпляр класса, но не задумывался об тонкостях работы с этими методами, а также об super(). После видео стало понятно когда и как это можно использовать.

  • @IvanIvanov-dh3sg
    @IvanIvanov-dh3sg 2 года назад +4

    Очень интересно и познавательно)))

    • @zproger
      @zproger  2 года назад

      Благодарю

  • @diz996
    @diz996 2 года назад +3

    Хорошее видео, я подумаю над твоим предложением )

    • @zproger
      @zproger  2 года назад +1

      Рад что понравилось =)

  • @gilman2056
    @gilman2056 2 года назад

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

  • @dima.kasper
    @dima.kasper Год назад

    Ваша программа становится настолько глубокой, что мало кто сможет в ней разобраться. Даже вы через 2 недели😂😂
    А если серьезно, то метапрограммирование это очень мощно и действительно позволяет крутить мутить как угодно.
    А еще цитата Лучано Ромальо, автора Fluent Python:
    “Метаклассы не нужны 90% разработчиков. А остальным 10% они не нужны в 90% случаев.“

  • @brothersstudio3566
    @brothersstudio3566 2 года назад +1

    Ребята, не реклама. Я учу питон чуть больше полугода (7.5 месяца) уже работаю по профилю.
    Так вот, в свое время я нашел курс данного человека (конечно, слитый, но все же) (да я его тоже покупал, просто у инфоцыган как это водится).
    Хочу дать отдельную благодарность человеку с этого канала за такой курс (к слову, то его старый, если он его зарефакторил, то я даже представить не могу насколько он стал крутым). Ни у одного человека я не видел курса ООП лучше. Причем, подход в 3-7 минут идеален, т.к ты точно знаешь что в видосе и тебе не нужно мотать 20-30-40 минутные видосы, где в т.ч очень много воды. У канала незаслуженно мало подписчиков, хотя рассказывает человек очень хорошо ( особенно на фоне его старых видосов) и показывает то, чего не показывает практически никто (я за тонкости, например те же прокси, когда в свое время мне нужно было для модуля реквестов в начале своего пути).
    Да, много "повторений", но и у него публика не шибко большая, плюс он всегда что-то дополняет, даже если повторяет.
    Так что если действительно ищете хороший курс - он не врет, он у него действительно отличный.
    Всем бобра, а автору жирный лайк.

    • @zproger
      @zproger  2 года назад

      Благодарю за комментарий, буду стараться и дальше улучшать уровень контента

    • @Accusan
      @Accusan 4 месяца назад

      Подскажи где купить слив пожалуйста

  • @Igor_UA
    @Igor_UA 2 года назад +2

    На 3:08 есть упоминание о фишках, которые запрещены RUclips - ом...
    Что это может быть?

    • @zproger
      @zproger  2 года назад +2

      Технологии по обходу различных защит например)

  • @chicago_typewriter
    @chicago_typewriter 2 года назад +1

    Автор, подскажи плз как именно называется твой курс на степике?

    • @zproger
      @zproger  2 года назад

      В разделе "о канале" есть ссылка на степик, но самый актуальный курс по 1й ссылке в описании под этим видео, именно там будут все обновления и т.д

  • @seoonlyRU
    @seoonlyRU 2 года назад +1

    лукасик от СЕООНЛИ

  • @jonnash1683
    @jonnash1683 Год назад +1

    Разве cls не ссылка на сам класса, а self - на экземпляр?

    • @zproger
      @zproger  Год назад +1

      В видео разве не так сказал?

    • @jonnash1683
      @jonnash1683 Год назад

      @@zproger Прошу прощенья, если ошибся. Сейчас пересмотрю!

  • @Shadowfight-z5f
    @Shadowfight-z5f Год назад +1

    0:20 Я вообще не топовый и даже можно сказать не разработчик. Однако довольно быстро въехал что
    __new__ первым аргументом ссылается на класс, а __init__ на экземпляр класса

    • @zproger
      @zproger  Год назад

      Это хорошо

  • @gmd3232
    @gmd3232 2 года назад +1

    А есть ли в питоне модификаторы доступа?

    • @zproger
      @zproger  2 года назад

      Да, в Python можно делать приватные и защищенные атрибуты.
      Это не назвать прям полноценными модификаторами доступа,
      но они позволяют сделать похожий функционал.

  • @rokot
    @rokot 2 года назад +1

    Сухая сжатая информация плохо усваивается. Нужны примеры. И моя проблема, что когда я смотрю на класс, я спрашиваю себя как это можно переделать на функции, то есть я пока не нашёл ни одного примера, когда без класса не обойтись. Поэтому в классах я плох. Но очень хочу подрасти в этом вопросе. Но мне нужны весомые примеры с демонстрацией мощи классов, где бы показывалась ущербность функционального подхода. Чаще программы на функциях выглядят короче, чем на классах, поэтому я использую функционалку. Мне нужен такой пример, когда программа на классе стала бы короче, чем такое же на функциях.

    • @zproger
      @zproger  2 года назад +1

      В ближайшем видео покажу почему классы это огонь)

    • @tolia5587
      @tolia5587 2 года назад

      В простых программах классы реально не нужны. До недавнего времени тоже считал, что ооп это бесполезно. Но когда начинаешь писать что-то большое, ооп это очень удобно

    • @edgarfedosov1440
      @edgarfedosov1440 2 года назад

      Windows API - прекрасный пример того, как "удобно" на функциях делать, например, интерфейс. Когда любой элемент управления - это не класс, а 100500 функций и 100500 типов данных.

    • @alexandermartin5694
      @alexandermartin5694 2 года назад

      При программировании игр классы имеют серьёзные прюсы, во всём остальном можно действительно обойтись функциями, без заморочек с классами.
      Классы и были разработаны для GameDev, так как прогммирование одними функциями приводит неизбежно к тупику.

  • @alexartiushkin2865
    @alexartiushkin2865 2 года назад

    ці речі мали би вивчатися на початку вивчення пітона. І все-все було б набагато зрозуміліше. Це сі-подібні штуки, близькі до залізяччя. Коли __new__ бере шмат пам'яті з кучі, структурує, створює простір імен. Привласнює результат змінній. А потім __init__ в цю заготовку напихує зміст - прикладні атрибути.
    А, і головне. Якщо розібратися, що таке клас, то клас якби і є сінглтон. Робити потім інстанс - це двічі зберігати одне й те ж в пам'яті.

    • @zproger
      @zproger  2 года назад

      Вот если без инита реализовать атрибуты, то он будет реально вести себя как синглтон и возвращать старые адреса, чтобы экономить память. Но при использовании init поведение меняется. В остальном же согласен на 100%

  • @gmd3232
    @gmd3232 2 года назад

    А зачем нужна папка pycache?

  • @usakabi3843
    @usakabi3843 2 года назад +1

    Добрый день,вопрос по языку питон,как разшифровать pyarmor,есть ли какой-то способ?

    • @zproger
      @zproger  2 года назад +2

      Способ есть, но я еще его не проверял) Возможно дойдут руки и залью его в приват канал

    • @usakabi3843
      @usakabi3843 2 года назад

      @@zproger а сколько стоит доступ в приват канал ?

    • @zproger
      @zproger  2 года назад

      Он идет вместе с курсом ооп, более подробная информация по первой ссылке в описании.
      Можете также задать вопрос в чате на сайте.

    • @zproger
      @zproger  2 года назад

      Ок

    • @usakabi3843
      @usakabi3843 2 года назад

      @@zproger проверил ?

  • @MAKSIM24251
    @MAKSIM24251 2 года назад +1

    супер!

    • @zproger
      @zproger  2 года назад

      Благодарю

  • @auril1594
    @auril1594 2 года назад +1

    интересно бывает посмотреть такие видео про небольшие приколы в питоне. единственное, tuple comprehension не существует, там было generator expression в конструкторе кортежа :)

  • @gmd3232
    @gmd3232 2 года назад

    Как использовать numba с ООП?

  • @blackcatdevel0per
    @blackcatdevel0per Год назад

    Сделай ещё видос по метаклассам и работы с ними, динамическую генерацию классов, и динамическую генерацию классов с метаклассами)))

  • @plumber_from_forbs
    @plumber_from_forbs Год назад +1

    Фишки запрещены RUclips 😂

    • @zproger
      @zproger  Год назад

      Я не шутил, многие инструменты ютуб не одобрит и просто заблокирует видео

  • @drimmwald4483
    @drimmwald4483 2 года назад

    Доброго времени суток, замечал что автор часто отвечает на комемнты, у тебя отличный контент, очень много фишек узнал только благодаря тебе.
    Возможно дашь совет или подскажите книгу или курс по ООП, который помог в изучении данной темы, желательно бесплатный, не то что бы мне денег жалко.. живу просто в городе где нет банковской системы в связи с последними событиями..

  • @Himera1983
    @Himera1983 8 месяцев назад

    я так и не понял магические методы. Почему и как они существуют но мы их не видим и почему мы их пишем еще. Например init . Как можно сразу понять? Я даже сформулировать не могу как и что я непонимаю .

  • @YourCloseCoop
    @YourCloseCoop 2 года назад +1

    Привет, Погер, есть реально важный вопрос
    Что такое __long__ метод? Он существует и, как написано, должен приводить число к типу long, хотя такого типа нет. Как факт, его pycharm подсвечивает как переменную, а числа можно использовать с буквой L и l как unsigned и signed (так написано): 56L, 4l. Снимешь об этом видео или упомянешь, пожалуйста ;)

    • @YourCloseCoop
      @YourCloseCoop 2 года назад

      Это дундер-метод: ___long___

    • @zproger
      @zproger  2 года назад +1

      Он уже не поддерживается в Python3, так как всё происходит автоматически,
      это в Python2 надо было играться руками)

    • @YourCloseCoop
      @YourCloseCoop 2 года назад +1

      А, хорошо, спасибо)

  • @МаксКар-н2ц
    @МаксКар-н2ц 2 года назад +2

    Половина видео реклама своих курсов. Как я этого ждал, ауено. Больше рекламы, больше...

    • @zproger
      @zproger  2 года назад

      Рекламу можно пропустить если что одним нажатием ЛКМ =)

  • @mrslashx
    @mrslashx 2 года назад +1

    Я new понял сразу а вот инит сидел и не мог понять долго

    • @zproger
      @zproger  2 года назад +1

      Обычно бывает наоборот)

    • @rokot
      @rokot 2 года назад

      Я к init и self отношусь, как необходимому злу, которое нужно прописать, чтобы класс начал свою жизнь. Но мне кажется, что разрабам языка можно было это убрать, и сделать опциональным, то есть если программисту нужно указать new, он указывает, а по умолчанию init уже стоит. Если смотреть саму историю появления классов, то мы видим, что это стало возможным ради того, чтобы язык стал учебным. Без классов его не могли преподавать в университетах. Учебный язык означает, что в нём есть всё для получения грамотности программирования. Чтобы студент мог с лёгкостью перепрыгнуть в другой язык. Для этого в языке должно существовать всё, что есть в других языках, в плане парадигмы. Объявление классов, открытие файлов, match - должно быть похожим как в других языках. Учебный истребитель похож с боевым только в плане управления, рычажки такие же как на боевом. Когда язык стали преподавать в западных университетах, он быстро достиг первых строг рейтинга.

  • @артурволков-ъ9н
    @артурволков-ъ9н 2 года назад +1

    Интересный и не понятный пример)
    Автор говорит, что в методе __init__ нельзя переписать множество поэлементно потому что оно не изменяемо, в то время как в методе __new__ возможно, хотя не смотря на все там происходит создание нового множества, что по сути и будет происходить в __init__ если не притягивать пример непонятно куда за уши и написать в лоб self=[for i in list_in].
    Если мое понимание является не верным, с радостью приму КОНСТРУКТИВНУЮ критику.

    • @артурволков-ъ9н
      @артурволков-ъ9н 2 года назад

      Если не ошибаюсь то идеологию иммутабельности никак не обойти, под копотом яблоко то оно и будет яблоком как бы вы его не красили в оранжевый.
      Умные дядьки не просто так сделали подобные вещи и зачастую если хочешь менять множество часто то тебе нужно не множество)
      Если хочешь редко то без велосипедов перезапиши)
      Если хочешь усложнить свой код, то вот тебе волшебные методы, развлекайся)
      Круто конечно что дается доступ к такому разнообразию предопределенных методов, но ребят основная проблема питона в возможности писать код как хочешь, но именно поэтому не стоит его перегружать там где не надо)

    • @zproger
      @zproger  2 года назад

      Без проблем можно создать такую переменную и в init, просто это самый наглядный способ показать как new работает, да и сами значения записывались напрямую в self, что без new и наследования не сделать

  • @omka4580
    @omka4580 Год назад

    Полезно

  • @cody__9115
    @cody__9115 2 года назад +1

    Чувак, ты конечно молодец, и твои видео реально классные, но не маловато у тебя опыта в разработке чтобы продавать курсы? 4-5 лет это уровень Мидла, а это мало чтобы вести свои курсы, таких берут в geekbraince и тд а там увы обучение не ахти

    • @zproger
      @zproger  2 года назад +2

      Спасибо за комментарий. Этого опыта более чем достаточно чтобы сделать такой курс по ооп, который не сделает никто, я по крайней мере не видел еще ни одного полного курса по ооп, который бы раскрывал столько тем, которые раскрывает мой курс. Да и к тому же, чтобы рассказать об ооп не надо 20 лет опыта иметь.

  • @Igor_UA
    @Igor_UA 2 года назад +1

    Класс

    • @zproger
      @zproger  2 года назад

      Спасибо =)

  • @ivanosinin5050
    @ivanosinin5050 2 года назад +1

    __new__ в питоне как инициализация в плюсах, только гибче

    • @zproger
      @zproger  2 года назад

      =)

    • @maksimluzin1121
      @maksimluzin1121 2 года назад

      Ну, не совсем так... Оператор _new_ в плюсах вызывает конструктор класса, т.е. инициализацию экземляра в памяти, так же, как и __init__ в Питоне. Но __new__ в Питоне помогает вмешаться в процесс выделения памяти и создания экземпляра, а в плюсах - этим занимается отдельная встроенная функция перед вызовом конструктора класса, malloc(...) обычно, которая вставляетсяя в код и обычно вызывается автоматически... Т.е. в Питоне это просто выложили на поверхность, да, для большей гибкости...

  • @gryphon175.yakusha9
    @gryphon175.yakusha9 Год назад

    видемо я еще не дорос чтоб понимать происходящее

  • @voruto1068
    @voruto1068 6 месяцев назад

    Я думал это объяснение инита🙃

  • @dmitriyneledva4693
    @dmitriyneledva4693 2 года назад +1

    очень крутое видео

    • @zproger
      @zproger  2 года назад

      Благодарю!

  • @пчелобавурод
    @пчелобавурод 2 года назад +1

    tuple - т'юпл

    • @zproger
      @zproger  2 года назад

      =)

    • @maksimluzin1121
      @maksimluzin1121 2 года назад

      "тапл", вообще-то... "Закрытый слог", в Инглише... "ю" произносится, как "а"...😉

  • @gilman2056
    @gilman2056 2 года назад +7

    запрещены ютубом😅🤣😂.

    • @zproger
      @zproger  2 года назад

      Я серьёзно)

  • @юрийступак-х3о
    @юрийступак-х3о 2 года назад +1

    так то видео прикольные, но по две минуты в видео рекламы из 12 минут видео , это жуть

    • @zproger
      @zproger  2 года назад

      Ну а что поделать, если не интересно, можете пропустить

  • @siiidorov
    @siiidorov 5 месяцев назад

    познавательное видео для детей не старше 10 лет

    • @zproger
      @zproger  5 месяцев назад

      Зачем тогда смотреть такие очевидные вещи?

  • @КириллЧе-я5ы
    @КириллЧе-я5ы Год назад

    New не стоит использовать никогда🥴 имхо… даже в плюсах это близко к депрекейт. Нефих вручную управлять памятью, раии никто не отменял. И контекст менеджер также лучше работает с ресурсами…

  • @IgNatUsiK.official
    @IgNatUsiK.official 2 года назад

    Здравствуйте

    • @zproger
      @zproger  2 года назад

      Здравствуйте =)

  • @Андрей-щ6г2ж
    @Андрей-щ6г2ж 2 года назад

    Что же это за технологии, о которых не стоит на ютубе говорить?

  • @DevALine
    @DevALine 2 года назад +1

    +

  • @luwqz1
    @luwqz1 2 года назад +1

    ___new___ чаще используется в мета классах

  • @СергейГандарин-з9щ
    @СергейГандарин-з9щ 2 года назад +1

    Я вообще нечего не понял.тоны,зкземпляры.А по русски можно.

    • @zproger
      @zproger  2 года назад

      Ну это видео скорее для тех, кто уже смешарик

    • @СергейГандарин-з9щ
      @СергейГандарин-з9щ 2 года назад

      @@zproger А где начало всех начал.Что и как с чего начать,Если этот урок продолжения чем и евляется,естейственно не понятно о чом рерь.

    • @maksimluzin1121
      @maksimluzin1121 2 года назад

      Это базисы теории ООП. Ну, не всё - базисы, но то, что ООП-разработчик просто обязан знать и понимать! Упрощённо говоря,
      1. "Класс" - это "шаблон" ("пресс на станке для штамповки пробок для бутылок"). "Экземпляр класса" - это объект в памяти, (т.е. сама готовая "пробка").
      2. "Синглтон" - это один из шаблонов разработки в ООП, который описывает, как создать один единственный экземпляр класса во всей программе, независимо от того, сколько раз будут попытки его создать (причём, во всех языках ООП). Иногда это очень полезно... См. : Паттерны проектирования, Design Patterns ("Банда Четырёх").

    • @serobrine
      @serobrine Год назад

      ​@@СергейГандарин-з9щ ты сначала русский выучи

  • @rsmz20
    @rsmz20 2 года назад +2

    Z в начале названия вашего канала надеюсь не имеет ничего общего с нынешней ситуацией между Россией и Украиной

    • @zproger
      @zproger  2 года назад +1

      Конечно нет) нику 3 года уже

    • @rsmz20
      @rsmz20 2 года назад

      @@zproger Тогда я спокоен, очень круто объясняете,мне как новичку, больше чем понятно. Продолжайте развивать контент в том же духе.

    • @LiftBuff
      @LiftBuff 2 года назад

      @@zproger Успокоили. А то жалко было бы, контент у вас хороший. Кстати, многие поменяли подобные ники, так как букву Z сильно зашкварили, как некогда свастику.