Как видите, функция full_name возвращает строку с именами и фамилиями людей.
То, что делает декоратор @property
, объявляет, что к нему можно получить доступ, как к обычному свойству.
Это означает, что вы можете вызвать first_name
, как если бы это была переменная-член вместо функции, например, так:
name = person.full_name
вместо
name = person.full_name()
Вы также можете определить метод установки следующим образом:
@full_name.setter
def full_name(self, value):
names = value.split(' ')
self.first_name = names[0]
self.last_name = names[1]
Используя этот метод, вы можете установить полное имя человека следующим образом:
person.full_name = 'John Doe'
вместо
person.set_full_name('John Doe')
PS приведенный выше установщик является лишь примером, поскольку он работает только для имен, состоящих из двух слов, разделенных пробелом. В реальной жизни вы бы использовали более надежную функцию.