@ MoxieBall и @ pavan уже показали синтаксис. Я углублюсь немного глубже, чтобы объяснить, что происходит.
Декоратор @property
существует точно, так что вы можете получить и установить поля объекта с помощью удобного синтаксиса x = object.field
и object.field = value
. Итак, @ MarkIrvine , вы сделали все правильно, чтобы ваш геттер contact.funds()
стал contact.funds
, а сеттер contact.funds(value)
- contact.funds = value
.
Путаница заключается в том, что декоратор @property
переопределяет символы в ваших контактных объектах. Другими словами, contact.funds
- это a Дескриптор объекта . После применения декоратора @funds.setter
к def funds(self, value):
функция funds
больше не существует, как вы ее определили. Поэтому contact.funds(value)
сначала возвращает свойство contact.funds
, а затем пытается вызвать его, как если бы это была функция.
Надеюсь, это поможет. =) * * Тысяча тридцать одна