How can I get the variable name of a child object?
6 次查看(过去 30 天)
显示 更早的评论
I want to display the name of an object variable in its "disp" method.
I currently do the following:
methods
function disp(this)
objVar = inputname(1);
disp(['Var: (' objVar ')']);
end
end
This works great for a lone object:
>> myObj = myClass();
>> disp(myObj)
Var: (myObj)
>>
However, for a child object, it does not work:
>> myParent = myParentClass();
>> myParent.child = myClass();
>> disp(myParent.child)
Var: ()
>>
How can I get the variable name to display for a child object?
e.g.
>> myParent = myParentClass();
>> myParent.child = myClass();
>> disp(myParent.child)
Var: (myParent.child)
>>
0 个评论
回答(1 个)
Walter Roberson
2013-8-27
You cannot, at least not without some nastiness involving the program examining its own source code. "myParent.child" is not a variable name. "myParent.child" will be treated as an expression, and expressions that are not simple variable names will always come out empty for inputname() purposes.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Create System Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!