Ответ
Геттер (getter) — это метод в объектно-ориентированном программировании, который предоставляет контролируемый доступ для чтения значения приватного или защищенного атрибута класса.
Основная цель — инкапсуляция: сокрытие внутренней реализации данных и предоставление публичного интерфейса для работы с ними. Это позволяет добавлять логику (например, валидацию или форматирование) при доступе к значению, не изменяя код, который использует этот объект.
В Python для создания геттеров используется декоратор @property
. Он позволяет обращаться к методу как к обычному атрибуту, без вызова ()
.
Пример:
class Account:
def __init__(self, initial_balance):
# _balance — защищенный атрибут
self._balance = initial_balance
@property
def balance(self):
# Логика геттера: можно добавить форматирование или проверку прав доступа
return f"{self._balance} USD"
# Использование
acc = Account(100)
print(acc.balance) # Доступ как к атрибуту, а не методу acc.balance()
# Вывод: 100 USD
Использование @property
вместо прямого доступа к атрибутам позволяет в будущем изменять логику получения данных, не нарушая обратную совместимость.