В чертах Python EPD я могу сохранять переменные, которые зависят от других, в актуальном состоянии либо со свойством, либо с действиями в методе, который заботится об изменениях переменной 'master'.
Я показываю здесь оба способа, сначала со свойством:
from traits.api import HasTraits, Int, Property
class MyClass(HasTraits):
val = Int
dependent = Property(depends_on = 'val')
def _get_dependent(self):
return 4*self.val
и теперь с обработчиком черт:
from traits.api import HasTraits, Int
class MyClass(HasTraits):
val = Int
dependent = Int
def _val_changed(self):
self.dependent = 4*self.val
Мой вопрос: когда я должен использовать что? Исследуя это, я понял, что одно из отличий состоит в том, что в случае использования свойства «зависимая» переменная становится доступной только для чтения, если она установлена как здесь. Но скажем, зависимый действительно действительно зависимый, и у меня никогда не было достаточно знаний, чтобы установить его напрямую, есть ли еще разница, о которой я должен знать?
Редактировать: Это похоже на мой вопрос, связанный с другими чертами , но не имеет прямого отношения.