5
如果我编写调用另一个模块的函数或模块,如何获取调用函数/模块的名称?这对调试有帮助。如何在Mathematica中的模块中获得调用函数的名称?
如果我编写调用另一个模块的函数或模块,如何获取调用函数/模块的名称?这对调试有帮助。如何在Mathematica中的模块中获得调用函数的名称?
Stack
function几乎完全符合您的要求,给出了调用堆栈中“标签”(用于您的目的,读取“函数”)的列表。这不是防弹的,因为其他功能的存在,如StackBegin
和StackInhibit
,但这些都是非常奇特的开始。
在大多数情况下,Stack
将返回命名被评估函数的符号。为了弄清楚这些符号来自哪些背景,你可以使用Context
function,它可以尽可能接近你想要弄清楚它们是什么软件包。但是,这需要谨慎,因为可以动态地将符号添加到包中(通过Get
,Import
,ToExpression
或Symbol
),并且可以在其他包中重新定义或修改它们(例如,具有新的评估规则)。
谢谢!堆栈[_]就是我一直在寻找的东西。 – Tony 2009-09-14 17:17:00