【发布时间】:2019-05-22 07:43:58
【问题描述】:
有没有办法编写一个具有自己的方法之一作为属性的 Matlab 类?我正在编写模拟代码,其中类的方法(实际上是一个物理方程)可能会在未来的发展中发生变化,所以我希望存档的类实例包含该方法。
这是一些类似于 Matlab 的伪代码。
classdef foo
properties
bar % some property
baz % a property that contains the method baz
end
methods
function out = baz() % the method I want to store
stuff
end
end
end
请注意,我希望“东西”以某种方式存储为属性,因此当我保存实例时,我会知道我使用的方法的版本。
最好是公共的,而不是静态属性。我想序列化实例。
【问题讨论】:
-
您的意思是属性中的方法reference(即函数句柄)?请提供一些伪代码(或另一种语言的代码),以显示您想要实现的确切目标以及以后如何使用它。我还要提到需要什么样的属性和方法属性(
private、static、const等) -
@Dev-iL 我不认为我的意思是方法参考。我实际上想存储方法的内容,而不仅仅是它的句柄。我是使用 Matlab 作为面向对象语言的新手,而且总体上仍然是 OOL 编程的业余爱好者,所以我的术语可能并不缺乏。我会尝试写一些伪代码来解释得更透彻。
-
我可以添加“类版本”之类的属性并记录类本身之外的内容。然而,它是独立的,有一定的清洁度。
-
所以基本上你想在类的某些属性中以纯文本形式保存类定义(或它的一部分)?我必须说这在 OOP 中并不常见。
-
@Rico 您应该从问题中删除此添加并将其作为答案发布(因为它似乎可以解决您的问题,而不是澄清它)。顺便说一句,我认为编写一些接受文件名和函数/方法名并且只返回函数代码的函数可能是值得的。