使用属性或特征处理程序设置依赖变量之间的区别

2024-09-29 20:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

在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相似,但不是直接相关的。在


Tags: 方法fromselfmaster属性状态方式property
1条回答
网友
1楼 · 发布于 2024-09-29 20:16:06

在本例中,我肯定会使用一个属性,因为dependent实际上没有保存任何需要保留的有用状态,您只需要访问它。在

第二种变体在某些情况下也很容易爆炸到你的脸上。假设您有更多的依赖项,将来需要添加更多的依赖项。每次根据val添加新成员时,必须转到_val_changed并让新成员知道。另一方面,如果您将新成员创建为读取val的属性,则它与其他成员是分开的,并且不会在每次添加依赖项时使代码更加混乱。在

相关问题 更多 >

    热门问题