Sobes.tech
Back to questions
Junior — Middle
75

Можете объяснить концепцию свойства (property) в программировании и как она применяется в классах?

Answer from AI

sobes.tech AI

Свойство (property) в программировании — это механизм, который позволяет управлять доступом к атрибутам класса через методы, но при этом использовать синтаксис обращения как к обычному полю.

В 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("Имя не может быть пустым")
        self._name = value

p = Person("Иван")
print(p.name)  # Иван
p.name = "Пётр"  # вызов сеттера

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