Свойство только для чтения в ООП в Python
Свойство можно сделать так, чтобы его
можно было прочитать, но нельзя было
записать. Для этого достаточно сделать
свойство с декоратором property
и не делать для него сеттер.
Давайте рассмотрим класс, в котором имя и возраст хранятся в приватных свойствах:
class User:
def __init__(self, name, age):
self.__name = name
self.__age = age
@property
def name(self):
return self.__name
@property
def age(self):
return self.__age
Создадим объект и прочитаем его свойства:
user = User('john', 25)
print(user.name)
print(user.age)
Попытка записать что-то в свойство приведет к ошибке:
user.name = 'eric' # ошибка
Сделайте класс Employee с именем
и возрастом, которые можно прочитать
и нельзя записать.