Введение в свойства через декоратор в Python
Пусть у нас есть следующий класс с приватными свойствами:
class User:
def __init__(self, name):
self.__name = name
Как вы видите, имя задается один раз при создании объекта. Сейчас, однако, это свойство невозможно прочитать, ведь оно приватное и нет способа обратиться к нему снаружи класса.
В Python для чтения таких данных
используют свойство: над методом
ставят декоратор property, и снаружи
значение читают по имени, без вызова
метода с круглыми скобками.
Давайте сделаем свойство name,
которое будет возвращать приватное имя:
class User:
def __init__(self, name):
self.__name = name
@property
def name(self):
return self.__name
Создадим объект, параметром передав имя юзера:
user = User('john')
Прочитаем имя через свойство:
print(user.name) # выведет 'john'