«Вычисляемое» свойство.
property([fget[, fset[, fdel[, doc]]]])
-> property
fget -- Функция, реализующая возврат значения свойства.

fset -- Функция, реализующая установку значения свойства.

fdel -- Функция, реализующая удаление значения свойства.

doc -- Строка документации для создаваемого свойства. +py2.5 Если не задано , будет использовано описание от 'fget' (если оно существует).

Позволяет использовать методы в качестве свойств объектов — порождает дескриптор, позволяющий создавать «вычисляемые» свойства (тип property).

Пример использования в классическом виде:

    class Mine(object):

def __init__(self):
self._x = None

def get_x(self):
return self._x

def set_x(self, value):
self._x = value

def del_x(self):
self._x = 'No more'

x = property(get_x, set_x, del_x, 'Это свойство x.')

type(Mine.x) # property
mine = Mine()
mine.x # None
mine.x = 3
mine.x # 3
del mine.x
mine.x # No more

Используя функцию в качестве декоратора можно легко создавать вычисляемые свойства только для чтения:

    class Mine(object):

def __init__(self):
self._x = 'some value'

@property
def prop(self):
return self._x

mine = Mine()
mine.prop # some value
mine.prop = 'other value' # AttributeError
del mine.prop # AttributeError

+py2.6 Объект свойства также предоставляет методы getter, setter, deleter, которые можно использовать в качестве декораторов для указания функций реализующих получение, установку и удаление свойства соответственно. Следующий код эквивалентен коду из первого примера:

    class Mine(object):

def __init__(self):
self._x = None

x = property()

@x.getter
def x(self):
"""Это свойство x."""
return self._x

@x.setter
def x(self, value):
self._x = value

@x.deleter
def x(self):
self._x = 'No more'

Внимание
Как видно из приведённого выше примера, функции-вычислители свойства должны иметь то же имя, что и само свойство.

+py3.5 Добавлена возможность установки строки документации для объекта-свойства.
Синонимы поиска: property (свойство), свойства, свойство, @property, properties
На заметку
Зарегистрированные пользователи могут добавлять Книги.