[英]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.