ООП 10 Геттеры и сеттеры, property атрибуты

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

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

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

    🔥 Записывайся на курс по ООП: stepik.org/a/114354
    📙 Там тебя ждет:
    ✔ более 180 практических заданий по ООП
    ✔ более 300 тестовых заданий на проверку материала
    ✔ более 6 часов видеоматериала
    ✔ текстовые материалы по урокам, примеры кода
    ✔ Доступ к закрытому чату с дружественной обстановкой
    ✔ Сертификат в случае успешного прохождения курса
    🎁 По промокоду EGOROFF можно получить 10% скидки на приобретение данного курса

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

    я столько видео просмотрел, но никто так доступно и понятно не объяснил, как это сделали Вы! Спасибо от всей души!

  • @xvostov_k
    @xvostov_k 4 года назад +10

    лучший курс, что я нашел и стоит каждого рубля, продолжай в том же духе

  • @grenzhochspannungshindernis
    @grenzhochspannungshindernis 4 года назад +19

    Привет, Артём! Ты очень досутпно объясняешь, благодарю! Продалжай в том же духе. Я еще надеюсь, что ты подробные видео сделаешь про сокеты, tkinter, pyqt, работу с бд, django и flask.

  • @АлексейА-г8ы
    @АлексейА-г8ы Год назад

    Спасибо большое. Учусь а курсе сейчас и смотрю Ваши видео перед более сложными, которые на курсе. Очень полезный плейлист и канал

  • @sofiipochta
    @sofiipochta 5 месяцев назад +1

    Спасибо, посмотрела!

  • @ЭтоМедуза
    @ЭтоМедуза 3 месяца назад

    Спасибо, хорошо объяснили

  • @Freddi.V
    @Freddi.V 3 года назад

    Благодарю, продолжай в том же духе!

  • @TheReasterTR3
    @TheReasterTR3 4 года назад +1

    Как всегда все прекрасно!)

  • @АнастасияСитко-х9ю
    @АнастасияСитко-х9ю 2 года назад

    Спасибо огромное!

  • @PAIN153
    @PAIN153 3 года назад +8

    Здравствуйте, что-то я немного запутался. А для чего тогда нужно создавать это свойство геттер и сеттер через property, в чем смысл? Ведь получается мы вернулись к началу, снова сделали наш атрибут, как будто бы публичным. Не легче будет например в таких ситуациях просто убрать "__" и снова сделать ее публичной. Не знаю может из-за маленького опыта не понимаю смысл этих геттеров и сеттеров

    • @НиколайКарлов-й5т
      @НиколайКарлов-й5т 3 года назад

      Может, я неправильно предполагаю, но смысл например такой: в геттере или сеттере можно отправлять не просто запрос, а передавать параметром токен пользователя, и внутри метода класса проводить проверку токена на валидность. Тогда аутентифицированный пользователь получит доступ к переменной, а левый - нет.

    • @Zeding_Stuff
      @Zeding_Stuff 3 года назад +6

      когда ты просто напрямую изменяешь атрибут через дот нотацию то ты можешь написать туда любую чушь по типу текста, когда нужны числа, как и было показано в примере.
      чтобы не вводился текст и другая прочая фигня внутри класса пишут метод, который делают проверку на тип устанавливаемых данных. помимо проверки на тип данных можно напихать туда еще много всяких полезных плюшек, а через простую дотнатацию, т.е когда ты пишешь:
      d.balance = 10000
      о никаких проверках и речи идти не можешь, но когда ты используешь какой-нибудь метод
      d.set_balance(10000)
      то в этот метод можно напихать всяких проверок, исключений, сообщений, короче много всякого добра.
      но писать такие длинные методы некамильфо и вообще не понятиям, поэтому это самое волшебная функция (или декоратор) property объединяет первое со вторым - т.е. ты залезаешь в функцию класса
      d.set_balance()
      но с помощью дотнотации как ты делал изначально
      d.balance = ...
      если я все, конечно, правильно понял.

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

    Спасибо огромное

  • @ГерманРыков-ъ6в
    @ГерманРыков-ъ6в 4 года назад +3

    Здравствуйте. На 9.58 мы вызываем del через обращение к внутреннему методу, а до этого обращались к свойствам, но ведь и del прописан в свойствах. Вопрос у меня общий, как программа интерпритирует какое именно свойство применять именно сейчас и возможно ли было применить del через свойства а не вызывать внутренний метод?

  • @jomagsm4189
    @jomagsm4189 4 года назад

    Спасибо за урок

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

    спасибо!

  • @МихайлоМ-п5ц
    @МихайлоМ-п5ц 4 года назад

    Спасибо!!!

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

    Прем стоит своих денег, хе-хе.

  • @nto2503
    @nto2503 4 года назад +3

    немного магии: когда будут прописаны принты, раскройте в 3 правом окне любой экземпляр (a, b, w и т.д.) и принт get_balance будет срабатывать при каждом любом действии: определении класса, изменении значения баланса, а при выводе функции get_balance - будет срабатывать два раза. Почему так?!

  • @АлексейА-г8ы
    @АлексейА-г8ы Год назад

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

  • @ПавелФесенко-д7и
    @ПавелФесенко-д7и 4 года назад

    видео супер. но я бы добавил проверку на True и False

  • @ЕрвандАгаджанян-в3к

    Крвасавчик!

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

    Два раза посмотрел и ничего не понял. Задача была закрыть доступ к балансу. Десять минут объяснений и в результате всё равно доступ к балансу открыт.

  • @НазваниеДляназвания
    @НазваниеДляназвания 4 года назад +6

    Ваши уроки очень помогают, вы не могли бы снять видео где вы бы постарались сделать свою полноценную игру?

  • @НайлНаре
    @НайлНаре 3 месяца назад

    все же не понимаю, ради чего тогда защищенные переменные? Если все равно мы делаем костыли, чтобы с ними работать

  • @chem826
    @chem826 4 года назад

    У меня PyCharm заставляет в строчке set_balance приравнять value=None, без этого выдает ошибку. Можешь пожалуйста сказать в чем проблема и почему это вылезает.
    def set_balance(self, value=None):
    print('set balance')
    if not isinstance(value, (int, float)):
    raise ValueError('Баланс должен быть числом')
    self.__balance = value

    • @egoroffchannel
      @egoroffchannel  4 года назад

      а что в ошибке пишется?

    • @chem826
      @chem826 4 года назад

      @@egoroffchannel хм, сейчас переправил без None и заработало, без понятия. Может что-то не так было написано. Но крч тогда не давало изменить число через d.balance = ...
      Сейчас все нормально

  • @ice-lc6mf
    @ice-lc6mf 3 года назад

    а как четвертый параметр проперти работает? кто подскажет?:)

    • @ИгорьВоронов-ъ4м
      @ИгорьВоронов-ъ4м 3 года назад

      четвертый это какой?

    • @ice-lc6mf
      @ice-lc6mf 3 года назад

      @@ИгорьВоронов-ъ4м я в idle работаю.там всплывающая подсказка - кроме fget,fset,fdel еще и doc

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

    Здравствуйте, перепечатал код как и в задании, но почему то у меня balance стал публичным. Хотя __ стоит перед ним. Можете подсказать?

  • @vyacheslav_kapitonov
    @vyacheslav_kapitonov 3 года назад +3

    А зачем все эти ухищрения. Мы написали 3 метода, чтобы делать тоже самое, если бы метод был не приватным. Я не спорю, что так надо делать, но как-то не было приведено практические примеров

  • @ПавелГолубев-п8о
    @ПавелГолубев-п8о 4 года назад +1

    Спасибо за объяснение, вновь всё наглядно и понятно)
    Но всё же у меня есть вопросы...
    Мне кажется ты выбрал не совсем удачные пример, ибо у меня возник вопрос, а зачем нужна защищённая переменная в данном случаи, если мы делаем метод, который позволяет нам её изменять, а потом добавляем ещё и свойство, которое помогает нам это легко сделать...

    • @egoroffchannel
      @egoroffchannel  4 года назад

      в питоне можно изменить любой атрибут, но проверти позволяет тебе контролировать этот процесс

  • @azm1397
    @azm1397 4 года назад

    Его можете скинуть ссылку на видио про isinstance

    • @egoroffchannel
      @egoroffchannel  4 года назад +2

      egoroffartem.pythonanywhere.com/course/python/vstroennaya-funkciya-isinstance

    • @azm1397
      @azm1397 4 года назад

      @@egoroffchannel спасибо

  • @worldvideos3324
    @worldvideos3324 4 года назад

    Привет. К сожалению у тебя на степике ошибка, не принимает ни одно задание. Возможно занижен лимит по времени работы программы? Посмотри в комментах решение Виктора Лепика. Я думаю оно верно, но все равно не проходит

    • @egoroffchannel
      @egoroffchannel  4 года назад

      там в тестах была ошибка
      + условия у вас прописаны на сохранение почты не совсем корректые

  • @duck0154
    @duck0154 4 года назад +1

    Это видео ты снял в 2к18. Почему так долго не выходило??

  • @ankhmarcius8331
    @ankhmarcius8331 4 года назад +2

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

    • @yodapunishes
      @yodapunishes 4 года назад +1

      Вам показали каким образом можно задать логику доступа к атрибутам. Не только ограничение private, protected. Через property getter, например, вы можете определить выдачу результата по паролю. Всё ограничено только фантазией и техническим заданием

  • @kanstantsinhulevich4313
    @kanstantsinhulevich4313 4 года назад

    после java грустно без статической типизации ))