Debugging 如何获取Mathematica中模块内调用函数的名称?
如果我编写了调用另一个模块的函数或模块,如何获取调用函数/模块的名称?这将有助于调试。将几乎完全按照您的要求执行,提供调用堆栈中的“标记”(出于您的目的,请阅读“函数”)列表。它不是防弹的,因为存在其他功能,如Debugging 如何获取Mathematica中模块内调用函数的名称?,debugging,wolfram-mathematica,Debugging,Wolfram Mathematica,如果我编写了调用另一个模块的函数或模块,如何获取调用函数/模块的名称?这将有助于调试。将几乎完全按照您的要求执行,提供调用堆栈中的“标记”(出于您的目的,请阅读“函数”)列表。它不是防弹的,因为存在其他功能,如StackBegin和StackInhibit,但这些功能一开始就非常奇特 在大多数情况下,Stack将返回命名被评估函数的符号。为了弄清楚这些符号来自什么样的上下文,你可以使用,这是一个尽可能接近你能弄清楚它们是什么包的一部分。不过,这需要一些注意,因为符号可以动态地添加到包中(通过Ge
StackBegin
和StackInhibit
,但这些功能一开始就非常奇特
在大多数情况下,
Stack
将返回命名被评估函数的符号。为了弄清楚这些符号来自什么样的上下文,你可以使用,这是一个尽可能接近你能弄清楚它们是什么包的一部分。不过,这需要一些注意,因为符号可以动态地添加到包中(通过Get
、Import
、ToExpression
或Symbol
),也可以在其他包中重新定义或修改(例如,使用新的评估规则) 谢谢!堆栈是我一直在寻找的。