如果我编写一个调用另一个模块的函数或模块,我如何获得调用函数/模块的名称?这将有助于调试目的。
问问题
230 次
1 回答
4
该Stack
函数几乎完全符合您的要求,给出调用堆栈中的“标签”列表(为了您的目的,请阅读“函数”)。它不是万无一失的,因为还有其他功能,例如StackBegin
and StackInhibit
,但这些功能一开始就非常奇特。
在大多数情况下,Stack
将返回命名正在评估的函数的符号。要弄清楚这些符号来自什么上下文,您可以使用Context
函数,它与您可以尽可能接近地确定它们是哪个包的一部分。但是,这需要注意,因为符号可以动态添加到包中(通过Get
、或),并且它们也可以在其他包中重新定义或修改(例如,使用新的评估规则)Import
。ToExpression
Symbol
于 2009-09-14T13:45:33.780 回答