Можно ли использовать ComputedProperty?

Мне нужна поддержка вычисляемых свойств в 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 безопасен в использовании или он не работает или/и может быть изменен?

2 ответа

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

Поскольку запись в блоге Nick показывает, как легко создать собственный класс datastore Property, я бы не стал сильно беспокоиться о ComputedProperty, так как вы всегда можете заменить его подклассом Property вашего собственного, если нужно быть.


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

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

licensed under cc by-sa 3.0 with attribution.