我正在使用 pdb 调试程序。我连续点击'c'来运行代码,并且在每一步pdb都会告诉我执行了哪一行。
假设我们有以下代码:
def foo(bar):
print(bar)
foo('hey')
首先,第 4 行调用函数 foo。然后 pdb 向我展示了这条线
def foo(bar)
被执行。
为什么?那条线不只是一种标签吗?在执行“print(bar)”之前会发生什么?(伴随着另一个“命中”)
编辑:我尝试过实际检查定义。事实上,在 foo 是一个生成器(不能以这种方式调用)的情况下,python 仍然到达那里,然后决定将其视为一个生成器(或视情况而定的函数......)。