Forwarded from Python Academy
Геттеры и сеттеры
В объектно-ориентированных языках распространено использование геттеров и сеттеров для безопасной работы с приватными полями. Например, в C# для этого есть удобная конструкция
В Python геттер реализуется через декоратор
Оба метода должны иметь одинаковое название, по которому можно будет обращаться как к обычному атрибуту.
#классы #property
В объектно-ориентированных языках распространено использование геттеров и сеттеров для безопасной работы с приватными полями. Например, в C# для этого есть удобная конструкция
{ get; set; }
.В Python геттер реализуется через декоратор
@property
, а сеттер в виде @свойство.setter
. В примере метод геттера называется age
, поэтому декоратор сеттера – @age.setter
.Оба метода должны иметь одинаковое название, по которому можно будет обращаться как к обычному атрибуту.
#классы #property
Forwarded from Python Academy
Дополнение про property
Важно отметить, что
Конструктор
Простыми словами, в примере
Кстати, можете посмотреть простейшую реализацию такого свойства в официальной документации.
#классы #property
Важно отметить, что
property
– это класс, реализованный через протокол дескриптора. Его методы setter
, getter
, deleter
и их использование в качестве декораторов – синтаксический сахар.Конструктор
property
принимает на вход аргументы fget
, fset
, fdel
, которые должны быть функциями. Они отвечают за получение, установку нового значения и удаление атрибута соответственно. Простыми словами, в примере
property
прикрепляет функции get_age
и set_age
к атрибуту age
. Также можно было реализовать условный delete_age
, который отвечал бы за удаление атрибута.Кстати, можете посмотреть простейшую реализацию такого свойства в официальной документации.
#классы #property