TGViewer
Python Learning Python Learning @python_per_month · 28.1K subscribers
Post #3067 5.33K
❓ Вопрос на собеседовании

Как работает метод @property в Python, и почему он считается полезным для инкапсуляции?

Ответ ⬇️
@property в Python позволяет создавать методы, которые можно вызывать как атрибуты. Это удобно для инкапсуляции и контроля над доступом к данным, позволяя нам реализовать "геттеры" и "сеттеры" в виде атрибутов, вместо прямого изменения переменных. @property можно использовать для вычисляемых значений или для валидации перед присвоением, сохраняя при этом простой синтаксис атрибутов.

Пример использования ⚙️
class Circle:
def __init__(self, radius):
self._radius = radius

@property
def radius(self):
return self._radius

@radius.setter
def radius(self, value):
if value < 0:
raise ValueError("Радиус не может быть отрицательным")
self._radius = value

circle = Circle(5)
print(circle.radius) # 5
circle.radius = 10
print(circle.radius) # 10
circle.radius = -1 # Ошибка: ValueError


Python Learning
👩‍💻
  • 👍 12
  • ❤‍🔥 3
More from @python_per_month
  1. Sep 14, 2026➡️ Memray — профилирование памяти для Python Memray — это современный инструмент для профи…
  2. Aug 17, 2026Срезы Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовател…
  3. Aug 11, 2026Нейросеть, LLM (большие языковые модели) и ИИ-агент Эти слова в разговорах часто использую…
  4. Jul 23, 2026👩‍💻 Задача по Python Создайте функцию find_longest_substring для поиска самой длинной по…
  5. Jul 13, 2026🔥 Три разных человека. Три разных проекта. Один и тот же подход. — Юра взял «скучную» ниш…
  6. Jul 11, 2026⚙️ enumerate() Когда тебе нужно итерировать по списку с доступом к индексу элемента, испол…
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 →