ДЕСКРИПТОРЫ В ПИТОНЕ

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

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

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

    - Не не не не .... пока что ничего не будет ))) Сижу жду кода увидишь что ты не проставил новые переменные __set_name__)))) Поржал) Это класнно когда не заученные текст с экрана читаешь а говоришь мысли. Улыбнуло)

  • @mcolegon
    @mcolegon 3 года назад +7

    Мне кажется для полноты материала нужно было бы рассказать ещё про дескрипторы данных, и non-дескрипторы а так же про их приоритеты вызова.

    • @newvanya
      @newvanya 9 месяцев назад +1

      это к балакиреву ))

  • @ВячаФродо
    @ВячаФродо Год назад +5

    Забавный момент. Если имя name в __set_name__ будет совпадать с именем объекта дескриптора, сеттер дескриптора уходит в рекурсию при использовании setattr. Проблема решается, если устанавливать значения атрибута через __dict__ . Например, instance.__dict__[self.name] = value

    • @bulyanka228
      @bulyanka228 6 месяцев назад +1

      или сделать так чтобы имя не совпадало добавив к ней символ типо "_"+name. но лучше instance.__dict__[self.name] = value

  • @ИннаЛиксакова-о4н

    хорошее видео, спасибо, быстро и без воды

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

    2 дня втыкал - зачем дескрипторы) А потом ты сказал что не красиво функцией) А красиво атрибутом. Я остановил и 5 минут с улыбкой сидел) Класс)

  • @musecollaboration
    @musecollaboration 2 месяца назад

    Спасибо

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

    Спасибо, стало понятнее))

  • @un.9bot325
    @un.9bot325 6 месяцев назад

    4:05 Это не инкапсуляция, а сокрытие

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

    Инкапсуляция это не просто сокрытие данных, имхо

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

    Спасибо за видео. Информации конечно не хватает но фундамент понимания работы дескрипторов заложен.

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

    Хм, а почему никто не заметил смешения атрибутов класса и инстанса. Попробуйте в первых 5 мин order.__dict__ и Order.__dict__ Питон конечно динамический и все терпит но можно и баг получить.

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

    чем плох магический метод getattribute и setattr?

  • @bohdan134
    @bohdan134 3 года назад

    Спасибо за разбор, будет полезно дальнейшее рассмотрение дескрипторов. А есть ли совет какую литературу можно почитать по advanced топикам питона?

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

      Python к вершинам мастерства
      Test Driven Web Development Python
      High Performance Python

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

    Раньше я лениво пользовался eval, и аргумент функции = имя переменной и делал декораторы или промежуточные функции 😂

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

    Спасибо, посмотрел на скорости x2 и все равно все понял. Довольно просто объяснили для самого базового уровня!

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

      да ничо ты не понял, максимум тупо код можешь скопипастить по памяти, а почему именно так работает тут не объяснено

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

      @@nicholasspezza9449 Применяю дескрипторы в своих проектах. (нефтехимия + it, если не вдаваться в подробности). Данный материал был неплохой для меня отправной точкой, за что я и поблагодарил автора. Для чего ты выдавил из себя коментарий - я не знаю, но в любом случае, раз ты наткнулся на это видео - удачи в обучении.

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

      @@LifeIsDramma то-то у нас на объектах нефтехимии постоянные утечки да "хлопки".

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

      @@nicholasspezza9449 У "вас" может быть, я на другом материке.

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

      @@LifeIsDramma сбежал от ответственности к кока-колам, чтоб тут не сесть за халатность и проф непригодность.

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

    self в __get__ и __set__ - экзепляр класса дескриптора

  • @just-me-x1y1z
    @just-me-x1y1z 11 месяцев назад +1

    5:31 Ошибка! Два нижних подчёркивания перед названием атрибута, в отличие от одного, РЕАЛЬНО ограничивают доступ к атрибуту извне!

    • @Mike24ru
      @Mike24ru 11 месяцев назад +3

      Да ладно?😂 И прямо никак не добраться?
      К их именами просто добавляется имя класса. Они так же доступны.

    • @radunov.a
      @radunov.a 10 месяцев назад

      @@Mike24ruну тогда можно заюзать accessify

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

      Серьезно? 😂😂😂 изучи тему получше

    • @knarg4682
      @knarg4682 17 дней назад

      class A:
      attribute = 0
      _attribute = 1
      __attribute = 2
      sss = A()
      print(sss.attribute)
      print(sss._attribute)
      print(sss._A__attribute)
      sss._attribute = 'ABC'
      sss._A__attribute = 'abc'
      print(sss._attribute)
      print(sss._A__attribute)
      Привет передавай двум нижним подчёркиваниям, когда встретишь.

  • @ViacheslavPatokin-lf3vs
    @ViacheslavPatokin-lf3vs Год назад +1

    Возникло ощущение что автор сам не до конца разбирается в материале о котором рассказывает😂

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

    Супер, все что надо понял.

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

      на самом деле ничего ты не понял

  • @moshamiracle
    @moshamiracle 3 года назад

    Получается с таким подходом с декораторами увеличиваются накладные расходы на хранение данных в памяти в два раза?

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

    Классный видос, спс от души

  • @АртурАлиев-й4н
    @АртурАлиев-й4н 3 года назад

    почему нельзя сделать @property и @amount.setter? или я чего-то не понимаю?

    • @PythononPapyrusRU
      @PythononPapyrusRU  3 года назад +1

      Можно, но дескрипторы это такая же конструкция только в классах. Можно наследовать, повторять много раз, создавать отдельные функции только под дескрипторы и так далее

    • @ИванКудряшов-к6м
      @ИванКудряшов-к6м 3 года назад +1

      Привет. В случае проперти у тебя будет дублирование кода, если еще будут атрибуты со схожими проверками например. Дескрипторы - лаконично и изящно.

    • @АртурАлиев-й4н
      @АртурАлиев-й4н 3 года назад

      @@ИванКудряшов-к6м Привет) Я думаю мы о том же, но с разных сторон.
      property дает меньше шансов отстрелить себе ногу, а так, да, представленное автором конечно же имеет место быть и очень полезно

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

    Чтобы по-настоящему защитить переменную: from accessify import private, protected

  • @Bupyc2006
    @Bupyc2006 3 года назад

    А где материал для продвинутых ? :)

  • @exe88cution
    @exe88cution 3 года назад

    А запись будет?

  • @sergeypotapov1182
    @sergeypotapov1182 3 года назад +1

    Инкапсуляция это не сокрытие
    Инкапсуляция связывание данных и методов

    • @sparrow3361
      @sparrow3361 3 года назад

      у инкапсуляции два понятия в ооп