Sobes.tech
Junior — Middle
88

Mi a szerepe a tulajdonságnak (property) egy osztály meghatározásában és viselkedésében?

Válasz az MI-től

sobes.tech MI

В 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 = "Пётр"  # сработает setter
# p.name = ""  # вызовет ошибку

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