Python:打印函数调用和命名空间

标签 python module

我想知道,出于调试目的,是否可以在执行导入后查看正在操作的 namespace 和模块,并进一步查看调用函数的位置。

如果我的代码中有一个函数 f(x) 和一个相当复杂的结构,有没有办法在不到处添加打印的情况下查看 f(x) 的调用位置?

类似于 f.print_occurrence()

"f was called in function integrate"
"f was called in function linspace"
"f was called in function enumerate"

与此类似的操作。

对于第一个问题,假设我导入一个模块“import somemodule” 现在,如果该模块导入其他模块,我可以看到已导入/使用了哪些命名空间和模块,而无需查找 somemodule.py (或其头文件,如果它存在,如 c/cpp 中)。

抱歉,如果这是一个新手问题,这似乎是我应该知道的错误处理和调试的基本技巧,但谷歌搜索没有返回任何有用的东西。

最佳答案

您可以编写自己的 f.print_occurrence() 属性。创建一个在函数启动时标记为“true”的变量,然后 f.print_occurrence() 将识别该标记并相应地进行打印。

关于Python:打印函数调用和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126664/

相关文章:

module - 如何找出已安装的 grunt 模块的版本?

linux - 使 proc 可用于所有模块文件?

python - 为什么没有捕获到多父异常?

python - 如何在python中的脚本之间共享变量?

python - 多个if条件,无嵌套

使用配置文件类优化 Python 代码

typescript - 在另一个文件中扩展导入的枚举并使用它

function - 在 Fortran 中正确使用模块

java - 为什么我无法在导入的模块中使用 Jython 类?

python - 如何在 Python 中计算数据帧子集的一个子集的平均值?