我想有一个类,在其构造函数中,它可以具有知识(提取为字符串)其实例名称。
目前我的名字提取工作如下:
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
语法以便...
答案 0 :(得分:1)
无法获取用于分配函数或类构造函数输出的变量名称。正如您所发现的,在调用工作空间中获取对象变量名称的唯一方法是调用该类的另一个方法,此时您可以使用library(purrr)
lll%>%
transpose %>%
map(lift(c)) %>%
setNames(., paste0("X", seq_along(.))) %>%
data.frame() %>%
arrange(X1)
进行查询。
除此之外,我们不清楚为什么你需要这样做,但我强烈反对它。特别是对于inputname
类,您可以将多个变量指向相同的对象,因此该对象在技术上具有多个名称。