Sobes.tech
Назад к вопросам
Junior — Middle
64

Можешь ли ты объяснить, что такое property в Python и как его можно использовать?

Ответ от нейросети

sobes.tech AI

В Python property — это встроенный декоратор, который позволяет управлять доступом к атрибутам класса, превращая методы в свойства. Это удобно для инкапсуляции: можно определить геттер, сеттер и делитер для атрибута, при этом использовать синтаксис обращения как к обычному полю.

Пример использования:

class Person:
    def __init__(self, name):
        self._name = name  # приватный атрибут

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        if not value:
            raise ValueError("Name cannot be empty")
        self._name = value

p = Person("Alice")
print(p.name)  # вызовет геттер
p.name = "Bob"  # вызовет сеттер

Таким образом, property позволяет контролировать чтение и запись атрибутов, добавлять валидацию или вычислять значения на лету, сохраняя удобный и понятный интерфейс.