繁体   English   中英

有没有一种简单的方法可以找到在 Python 中调用另一个函数的函数?

[英]Is there an easy way to find what function is calling another function in Python?

我不太精通 Python,虽然,我认为这个问题主要与语言无关,但想看看是否有一种特殊的方法可以为 Python 做到这一点。

我正在使用几个 Pytorch Python 脚本。

当我在https://github.com 中运行脚本时,正在执行https://github.com/pytorch/pytorch/blob/fbcode/warm/test/quantization/core/test_quantized_tensor.py 中第 147 行的test_qtensor_cpu函数/pytorch/pytorch/blob/fbcode/warm/test/test_quantization.py ,但我找不到调用test_qtensor_cpu的函数。 我做了一个grep -ri "test_qtensor_cpu*" . 在这个 repo 的根目录中,唯一的结果是这个函数的定义。

有没有办法在不明确写出函数名称的情况下调用这个函数?

只需添加:

def my_func_i_cant_figure_out_whats_calling_it()
    import traceback
    traceback.print_stack()

即使没有断点,这也会向您显示此时的调用堆栈。

是的,可以在不明确写出的情况下调用函数。

(并且弄清楚如何使用调试器非常有用......如果你早日弄清楚,将来你会感谢你)

test_quantization.py 第 29 test_quantization.py导入TestQuantizedTensor (包括test_qtensor_cpu方法)。

文件底部的run_tests()源代码在这里)将自动运行所有通过 unittest(通常通过unittest.main ,虽然这可以通过传递给测试套件的参数)导入的测试用例(包括TestQuantitizedTensor ) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM