我在 Python 中有一个 class,其中包含我想转换为 MATLAB 的 getter 和 setter
I have a class in Python with getters and setters that I want to translate to MATLAB
如何将此代码转换为 MATLAB?即使我使用 getters 和 setter 那么我如何在后一个函数中调用 MATLAB 中的 getter 函数?
class Celsius:
def __init__(self, temperature = 0):
self._temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
@property
def temperature(self):
return self._temperature
@temperature.setter
def temperature(self, value):
self._temperature = value
您不需要在 MATLAB 中为属性定义设置器或 getter。您的 class 在 MATLAB 中的转换如下所示:
classdef Celsius
properties
temperature = 0
end
methods
function obj = Celsius(temperature)
if nargin < 1
return
end
obj.temperature = temperature;
end
function val = toFahrenheit(obj)
val = obj.temperature * 1.8 + 32;
end
end
end
如果你想隐藏getter的属性,你可以添加一个GetAccess
属性:
properties (GetAccess = private) % or `SetAccess = private` to hide the setter, and `Access = private` to hide both the setter and getter
temperature = 0
end
要使用 class:
myCelsiusObject = Celsius(); % initialise the object with temperature = 0.
myCelsiusObject = celsius(10); % initiliase the object with temperature = 10.
currentTemperature = myCelsiusObject.temperature; % get the value of the temperature property.
currentFahrenheit = myCelsiusObject.toFahrenheit; % get fahrenheit.
myCelsiusObject.temperature = 1; % set the value of the temperature property to 1.
更多关于 MATLAB 中的 getters 和 setter
MATLAB 确实有 getter,但它们被用作所谓的 Dependent
属性,其值在 getter 函数中自动计算。有关更多信息,请参阅 this documentation。
MATLAB 中的设置器可用于 public 属性以验证输入值。参见 this documentation
如果您打算在 MATLAB 中进行更多面向对象编程,我也建议您阅读 full documentation。
如何将此代码转换为 MATLAB?即使我使用 getters 和 setter 那么我如何在后一个函数中调用 MATLAB 中的 getter 函数?
class Celsius:
def __init__(self, temperature = 0):
self._temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
@property
def temperature(self):
return self._temperature
@temperature.setter
def temperature(self, value):
self._temperature = value
您不需要在 MATLAB 中为属性定义设置器或 getter。您的 class 在 MATLAB 中的转换如下所示:
classdef Celsius
properties
temperature = 0
end
methods
function obj = Celsius(temperature)
if nargin < 1
return
end
obj.temperature = temperature;
end
function val = toFahrenheit(obj)
val = obj.temperature * 1.8 + 32;
end
end
end
如果你想隐藏getter的属性,你可以添加一个GetAccess
属性:
properties (GetAccess = private) % or `SetAccess = private` to hide the setter, and `Access = private` to hide both the setter and getter
temperature = 0
end
要使用 class:
myCelsiusObject = Celsius(); % initialise the object with temperature = 0.
myCelsiusObject = celsius(10); % initiliase the object with temperature = 10.
currentTemperature = myCelsiusObject.temperature; % get the value of the temperature property.
currentFahrenheit = myCelsiusObject.toFahrenheit; % get fahrenheit.
myCelsiusObject.temperature = 1; % set the value of the temperature property to 1.
更多关于 MATLAB 中的 getters 和 setter
MATLAB 确实有 getter,但它们被用作所谓的 Dependent
属性,其值在 getter 函数中自动计算。有关更多信息,请参阅 this documentation。
MATLAB 中的设置器可用于 public 属性以验证输入值。参见 this documentation
如果您打算在 MATLAB 中进行更多面向对象编程,我也建议您阅读 full documentation。