📅  最后修改于: 2023-12-03 15:20:21.121000             🧑  作者: Mango
在编写和调试代码时,程序员需要用到不同种类的调试技巧。其中,"Step over"、"Step into" 和 "Step out" 是调试中最常用的术语之一。 本文将介绍这三个术语的含义和使用场景。
"Step over" 是指跳过当前代码行并进入到下一行。可以将其视为向前单步执行。当你执行“Step over”命令时,不会进入任何函数或方法,而只是执行下一行代码。
在以下代码片段中,我们来看一下如何使用 "Step over" 命令。
def add(x, y):
return x + y
def main():
sum = add(2, 3)
print(sum)
if __name__ == "__main__":
main()
假设我们想要调试 "main" 函数。 当我们执行 "Step over" 命令时,程序将跳过 "add" 函数并进入到下一行 "print(sum)" 。
"Step into" 是指进入到函数或方法。当你执行"Step into"命令时,程序将进入当前行中调用的方法或函数中。这对于检查子函数、调试库代码和单步跟踪代码在哪里出现错误非常有用。
假设下面的代码是我们要调试的代码:
def add(x, y):
return x + y
def main():
sum = add(2, 3)
print(sum)
if __name__ == "__main__":
main()
如果我们想要调试 "add" 函数,那么我们需要执行 "Step into" 命令。 当我们执行 "Step into" 命令时,程序将停在第一行 "return x + y",让我们检查是否正确执行。
"Step out" 是指退出函数或方法并返回到当前函数被调用的一行。 当你执行 "Step out" 命令时,程序会继续执行直到当前函数或方法完成,然后回到函数被调用的行。 这对于从嵌套函数或方法中退出非常有用。
下面的代码将演示如何使用 "Step out" 命令:
def inner_func():
return 5
def outer_func():
a = 2
b = 3
c = a + b
result = inner_func() # We want to debug this line
print(result)
if __name__ == "__main__":
outer_func()
如果我们想要调试 "inner_func" 函数,则需要执行 "Step into" 命令。当我们已经检查了 "inner_func" 内部并想要回到 "outer_func" 调用的位置时,我们可以执行 "Step out" 命令。
这些命令非常有用,可以帮助程序员快速准确定位代码错误。