TGViewer
Кодим вместе: Путь к IT-Успеху Кодим вместе: Путь к IT-Успеху @it_success_path · 541 subscribers
Post #191 325
prodigy 🔥 PROPERTY в ООП - РАЗБИРАЕМ НА ПАЛЬЦАХ! 🔥

Опишу кратко суть, наверно проще будет на примере. Вспомните - если забыли, либо узнаете новое для себя.

Например у нас есть класс 👇 с защищенной переменной.

class Person:
def __init__(self, name, old):
self.__name = name
self.__old = old


И чтобы с ней работать вне этого класса, как вы помните, необходимо создать доп. методы в классе. Например:

    def get_old(self):
return self.__old

def set_old(self, old):
self.__old = old


property - упрощает создание сеттеров и геттеров(чтобы не писать/запоминать 100500 различных методов)

Один из вариантов создания такой:

 old = property(get_old, set_old) . 


Где get_old, set_old - соотествтенно гетер и сетер.

Как видим из синтаксиса - это декоратор, можно записать как выше, но лучше и практичней делать вот так вот:

class Person:
def __init__(self, name, old):
self.__name = name
self.__old = old

@property
def old(self):
return self.__old

@old.setter
def old(self, old):
self.__old = old

@old.deleter
def old(self):
del self.__old


То, что мы сделали, эквивалентно предыдущему варианту с тем лишь отличием, что теперь напрямую вызывать сеттер или геттер для локального свойства __old не получится. У нас остался один интерфейс взаимодействия – объект-свойство old. Именно так чаще всего делают на практике.

Так же есть еще один интересный момент в этом👇 Но не буду захламлять этим голову) Особо познавательным - скрытый текст в самом низу.

Ставьте реакции, спрашивайте в комментах, чтобы понять нравится, интересно, полезно или же нет😑:
знал это → 😎
узнал новое → 🤔
полезно → ❤️
есть вопросы → пишите

Та самая муть - можно не читать:
p = Person('ВАся', 25)
p.old = 35
p.__dict__['old'] = 45
print(p.__dict__)
print(p.old) # - что тут выведется, как думаете? кто знает?)

Например, можем создавать локальное свойство old в экземпляре класса, но при выводе и взаимодействии с ним будет использоваться то, что в защищенной переменной. Хотя, казалось бы, по логике должно же меняться локальное свойство old.
И ТАКОЕ СВОЙСВТВО БЕРЕТСЯ ВПЕРЕД( В ПРИОРИТЕТЕ НАД ДАЖЕ НАД СВОЙСТВОМ ЭКЗЕМПЛЯРА КЛАССА)
  • ❤ 2
  • 🤔 2
More from @it_success_path
  1. Oct 1, 2026Накрутка опыта всё? 🤔 Увидел новость: хедхантер хочет проверять опыт соискателей через эл…
  2. Sep 28, 2026Есть пробитие 80-ти! История подробно: • Все или ничего • Канал жив • Возвращение И всё эт…
  3. Sep 24, 2026В продолжение к предыдущему Помню, что в середине прошлой осени у меня было ровно 50 курсо…
  4. Sep 17, 2026Осознанный Python — База - done ✅ Коротко по курсу: • Теория - окей, как и в других курсах…
  5. Sep 12, 2026Почему решение приходит, когда ты уже не думаешь? 🧠 Знакомая ситуация: сидишь над задачей…
  6. Sep 5, 2026Эффект «плато» в обучении или почему прогресс останавливается Заметил за собой странную шт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →