Мне нужна поддержка вычисляемых свойств в App Engine. Я загрузил последнюю версию исходного кода, чтобы попробовать реализовать их самостоятельно. Проходя код, я наткнулся на класс свойств, который, кажется, уже делает именно то, что мне нужно.

class ComputedProperty(Property):
  """Property used for creating properties derived from other values.

  Certain attributes should never be set by users but automatically
  calculated at run-time from other values of the same entity.  These
  values are implemented as persistent properties because they provide
  useful search keys.

  ...
  """

Проблема в том, что это недокументировано; Я ничего не могу найти о ComputedProperty в официальной документации.

Так безопасно ли использовать ComputedProperty, есть ли ошибки и / или могут быть изменены?

4
hwiechers 22 Авг 2010 в 16:03

2 ответа

Лучший ответ

ComputedProperty кажется "портом" (из-за отсутствия лучшего слова) класса настраиваемых свойств с именем DerivedProperty из блога Ника Джонсона.

Поскольку запись в блоге Ника показывает, насколько легко можно создать собственный класс хранилища данных Property, я бы не стал сильно беспокоиться о ComputedProperty, поскольку вы всегда можете заменить его подклассом Property класса свой, если нужно.

7
matt b 22 Авг 2010 в 12:35

С тех пор они были запущены и задокументированы, по крайней мере, для NDB API:

https://developers.google.com/appengine/docs/python/ndb/properties#computed

3
John Mellor 20 Апр 2013 в 17:16