Дескрипторы в Python - максимальная инкапсуляция

Поделиться
HTML-код
  • Опубликовано: 22 май 2024
  • Дескрипторы это полезный инструмент инкапсуляции, который дополняет проперти. Я использую оба инструмента в зависимости от ситуации, дескрипторы для набора какой-то базы "фундаментальных" объектов, проперти для тех частей логики, которые уж точно должны оставаться внутри самого класса.
    Группа в тг, в которой я даю дополнительный контекст к своим видео - t.me/PythonClinicChnl
    Таймкоды:
    00:00 - интро
    00:27 - чтение и запись
    11:52 - только чтение
    16:54 - чтение, запись и удаление
    19:02 - выводы

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

  • @AlexandrKalinovsky
    @AlexandrKalinovsky Год назад +3

    Канал достоин 100к подписчиков! Пересмотрел много контента по теме, ваш контент один из лучших. Без лишней шелухи, обстоятельно и понятно.

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

      спасибо) мы дорастём)

  • @MrSunTrope
    @MrSunTrope Месяц назад

    Афигенно, все объяснил, спасибо

  • @arinawitch6928
    @arinawitch6928 Месяц назад

    запишите, пожалуйста, видео про протоколы дескрипоров

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

    Интересные видео. Спасибо вам

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

    Огонь!

  • @user-it3yo1sn6i
    @user-it3yo1sn6i Год назад

    Отличный контент. Хорошо что ютуб выдал вас в рекомендациях. Не зря подписался. Скажите, а будет ли видео про декораторы классов и методов классов? Спасибо

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

      обязательно будет, но пока трудно сказать когда именно, очень много всего запланировано по ООП

    • @user-it3yo1sn6i
      @user-it3yo1sn6i Год назад

      @@pythonclinic Здорово! Значит колокольчик был нажат не зря. А на какую тему следующее видео планируется? Уже интересно.

    • @pythonclinic
      @pythonclinic  Год назад +2

      во вторник будет следующее видео о процессах и автоматизации работы с ними

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

    Урок, после которого я понял, как работают дескрипторы 😊

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

      отлично, цель достигнута)

  • @VI-war
    @VI-war 10 месяцев назад

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

    • @pythonclinic
      @pythonclinic  10 месяцев назад

      да, я бы так и делал, с проперти в такой ситуации будет несколько проще

  • @p.polunin
    @p.polunin 4 месяца назад

    15:23, was_set будет глобальным на все экземпляры Dog? Значит в другом экземпляре я уже не смогу установить свойство?

    • @pythonclinic
      @pythonclinic  3 месяца назад

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

  • @user-qv6sp1zv3s
    @user-qv6sp1zv3s Год назад

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

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

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

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

    Почему так мало просмотров? Я не помню по чьей рекомендации подписался. Но точно не зря это сделал.

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

      спасибо вам и всем, кто рекомендует и делится моими материалами) ещё вырастем)

  • @pavel7914
    @pavel7914 9 месяцев назад

    @pythonclinic не понимаю 11:24, откуда берётся атрибут _Name__name, в частности что такое _Name?

    • @pavel7914
      @pavel7914 9 месяцев назад

      и ещё вопрос, почему при создании двух разных экземпляров класса Dog создаётся только 1 экземпляр класса Name?

    • @pythonclinic
      @pythonclinic  9 месяцев назад

      потому что дескриптор отрабатывает только один раз, при создании самого класса Dog, но не при создании экземпляра Dog, и вот этот экземпляр класса Name будет на уровне класса Dog разделяться между всеми экземплярами Dog
      _Name это кусок псевдонимизации закрытого атрибута в классе Name, глянь плиз видео про инкапсуляцию, там подробно рассказывается, откуда оно берётся

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

    я думаю меня многие поддержат, что все видео исключительной пользы. Изучаю Python месяцев 9, но не встречал такой глубокий контент

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

    еще как помню есть дандер метод __set_name__() для динамической генерации имен атрибутов, если не ошибаюсь

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

      ага, есть такая штука, позволяет задать имя класса, к которому дескриптор должен быть привязан (помогает с name mangling)

  • @romanlegenda6736
    @romanlegenda6736 11 месяцев назад

    В уроке создавались дескрипторы для атрибута класса? А что насчет атрибутов экземпляров класса, когда значения у каждого свои, я так понял:
    class Dog:
    def __init__(self):
    self.color = Color() #
    что такого?

    • @pythonclinic
      @pythonclinic  11 месяцев назад

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

  • @railsabbitovich408
    @railsabbitovich408 11 месяцев назад

    Господи, неужели хоть одно толковое видео о дескрипторах на русском языке! Спасибо , стало понятно)

    • @pythonclinic
      @pythonclinic  11 месяцев назад

      отлично, я рад)

  • @Asand3r
    @Asand3r 9 месяцев назад

    Какой ужасный стиль использования property, брр.

    • @pythonclinic
      @pythonclinic  9 месяцев назад

      сам в шоке

    • @tezl101
      @tezl101 7 месяцев назад

      Иммено из-за декораторов и редко использовал property, открыли мне более интересный стиль)@@pythonclinic