Python: 我可以在导入函数中设置 pdb.set_trace()

Python: Can I set pdb.set_trace() in imported function

我是运行一个python脚本。在此脚本中,我从另一个模块导入一个函数,例如:

from preprocessing import train_batch

我是 运行 的脚本中调用了 train_batch 函数。现在要更详细地检查 train_batch,我找到 preprocessing.py 并在 preprocessing.py 中的 train_batch 中插入 pdb.set_trace(),但它不起作用。

所以我想问一下:我可以在导入的模块中使用pdb.set_trace()吗?如果可以,那么这一定意味着我找到的模块是错误的,我需要找到正确的位置。如果我不能,那么有什么好的方法可以在必要时检查导入的函数吗?

是的。 pdb.set_trace() 只是一个函数调用;您可以将它放在任何可以调用其他函数的地方。

您可以在 Python 代码中的任何地方执行 import pdb; pdb.set_trace()*。如果它 "doesn't work" 我假设你的意思是你从未进入过 pdb。这意味着该行代码没有被执行。

您可以使用 pdb 中的 's' 命令单步执行代码,即使它不是您自己的。只要它是 Python 而不是 C 代码,就应该没问题。我不确定 C 代码会发生什么。

  • 除了在 lambda 中。但总的来说,任何地方