Python breakpoint() 函数



Python breakpoint() 函数用于调试过程,它调用 sys.breakpointhook() 方法,该方法触发有助于检查程序执行的 Python 调试器。

Python 解释器到达 breakpoint() 函数时,它会在该特定行停止执行,并允许用户检查变量、表达式,并且一次一行地单步执行代码。

breakpoint() 是 Python 3.7 版本中添加的内置函数之一。

语法

以下是 Python breakpoint() 函数的语法 -


 breakpoint()

参数

Python breakpoint() 函数不接受任何参数。

返回值

Python breakpoint() 函数不返回任何值。

breakpoint() 函数示例

练习以下示例来理解 Python 中 breakpoint() 函数的用法:

示例:使用 breakpoint() 函数

在下面的代码中,我们有一个 calc_sum() 方法,它接受两个参数并返回它们的 sum。在 breakpoint() 函数的帮助下,我们启用了调试器模式来检查 sum 操作的工作原理。


def calc_sum(a, b):
	 	return a + b
	 		
res = calc_sum(51, 49)
breakpoint() 	
print(f"The total sum is: {res}")

以下是上述代码的输出 -

<main.py>(6)<module>()
(Pdb) calc_sum
<function calc_sum at 0x7f9be0b14720>
(Pdb) res
100
(Pdb)

示例:用户定义函数中的 breakpoint()

以下示例显示了 Python breakpoint() 函数的用法。在这里,我们将创建一个名为 'calc_sum' 的方法,它接受一个列表对象并返回其元素的总和。为了检查它如何添加 list 的元素,我们使用 breakpoint() 函数。


def calc_sum(nums):
	 	add = 0
	 	for num in nums:
	 	 	 add += num
	 	 	 breakpoint()	
	 	return add
	 		
numerics_lst = [1, 2, 3]
res = calc_sum(numerics_lst)
print(f"The total sum is: {res}")

当我们运行上述程序时,它会显示 PDB 调试器控制台,用户可以通过传递变量和方法名称进行交互,如下所示 -

> <main.py>(3)calc_sum()
(Pdb) calc_sum
<function calc_sum at 0x7e5617490720>
(Pdb) add
1
(Pdb) num
1
(Pdb) nums
[1, 2, 3]
(Pdb) n
> <main.py>(4)calc_sum()
(Pdb) num
2
(Pdb)

示例:有例外的 breakpoint() 函数

下面的示例展示了如何在 Python 的 try-except 块中使用 breakpoint()。在此代码中,如果 divisor 的值为 0,则遇到错误。为了检查此错误,我们使用 breakpoint() 函数。


def division(x, y):
	 	try:
	 	 	 res = x / y
	 	except ZeroDivisionError:
	 	 	 print("Error: Division by zero.")
	 	 	 breakpoint() 	
	 	else:
	 	 	 print(f"The result is {res}")
	 	 	 		
division(88, 0)

上述代码的输出如下 -

ERROR!
Error: Division by zero.
--Return--
> <main.py>(6)division()->None
(Pdb) x
88
(Pdb) y
0