我想要一个只读字段,我可以访问fv = object.field,但其中的值是 return是从对象的其他字段计算的(即返回值满足fv == f(object.field2)). 所需的功能与Python中的属性function / decorator相同. 我记得看
return是从对象的其他字段计算的(即返回值满足fv == f(object.field2)).
所需的功能与Python中的属性function / decorator相同.
我记得看到一个引用,通过设置属性块的参数可以实现这一点,但是Matlab OOP文档非常分散,我再也找不到了.
这称为“依赖”属性.使用派生属性的类的快速示例如下:classdef dependent_properties_example < handle %Note: Deriving from handle is not required for this example. It's just how I always use classes. properties (Dependent = true, SetAccess = private) derivedProp end properties (SetAccess = public, GetAccess = public) normalProp1 = 0; normalProp2 = 0; end methods function out = get.derivedProp(self) out = self.normalProp1 + self.normalProp2; end end end
定义了这个类,我们现在可以运行:
>> x = dependent_properties_example; >> x.normalProp1 = 3; >> x.normalProp2 = 10; >> x x = dependent_properties_example handle Properties: derivedProp: 13 normalProp1: 3 normalProp2: 10