我想要一个类,在其构造函数中可以了解其实例名称(提取为字符串)。
目前,我像这样提取名称:
classdef mysession
methods (Access = public)
function this=mysession (varargin)
this.cargs=varargin;
this.built=false;
end
function id=build(this)
id=this.mynameis;
this.id = id;
%% instructions needing id
built=true;
end
function name = mynameis (this)
name=evalin ('caller', 'inputname');
end
end
properties (Access=private)
id
built
cargs
end
end
这需要丑陋的
A = mysession; A.build
语法以便工作...
无法获取用于分配函数或类构造函数的输出的变量名称。正如您所发现的,在调用工作区中获取对象变量名称的唯一方法是调用该类的另一个方法,此时您可以使用inputname
来查询它。
除此之外,尚不清楚为什么需要这样做,但我强烈建议不要这样做。特别是与handle
类,你可以有多个变量指向same对象,因此该对象在技术上具有multiple names.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)