在pythonepd Traits中,我可以使用一个属性或方法中的操作来保持依赖其他变量的最新状态,该方法负责“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
现在有了一个特征处理程序:
^{pr2}$我的问题是,我什么时候应该用什么?在研究这一点时,我意识到一个区别是在使用属性的情况下,“因变量”变为只读,如果像这里这样设置的话。但是假设,依赖是依赖的,我从来没有足够的知识来直接设置它,还有什么区别需要我注意吗?在
编辑:这与我的other Traits related question相似,但不是直接相关的。在
在本例中,我肯定会使用一个属性,因为
dependent
实际上没有保存任何需要保留的有用状态,您只需要访问它。在第二种变体在某些情况下也很容易爆炸到你的脸上。假设您有更多的依赖项,将来需要添加更多的依赖项。每次根据
val
添加新成员时,必须转到_val_changed
并让新成员知道。另一方面,如果您将新成员创建为读取val
的属性,则它与其他成员是分开的,并且不会在每次添加依赖项时使代码更加混乱。在相关问题 更多 >
编程相关推荐