异常bug定位,print()函数也可以,但效率上还是慢,后来发现了一个叫PySnooper的装饰器。一般debug调试,都是在我们可能觉得会有问题的地方,去打印输出,看下实际输出了什么,然后思考问题所在。
下载库:
pip install pysnooper
但是pysnooper很方便,运行代码就会输出对应函数的执行数据,并且函数每一步的输出都保存为debug_file.log,我们可以直接去看到底哪里出了问题。
import pysnooper
@pysnooper.snoop('./debug_feil.log')
def nu_to(number):
list1 = []
for i in range(number):
if i%2==0:
list1.insert(0, i)
else:
pass
return list1
nu_to(6)
Starting var:.. number = 6
09:54:45.310977 call 2 def nu_to(number):
09:54:45.310977 line 3 list1 = []
New var:....... list1 = []
09:54:45.312009 line 4 for i in range(number):
New var:....... i = 0
09:54:45.313003 line 5 if i%2==0:
09:54:45.313003 line 6 list1.insert(0, i)
Modified var:.. list1 = [0]
09:54:45.313003 line 4 for i in range(number):
Modified var:.. i = 1
09:54:45.313967 line 5 if i%2==0:
09:54:45.313967 line 4 for i in range(number):
Modified var:.. i = 2
09:54:45.314990 line 5 if i%2==0:
09:54:45.314990 line 6 list1.insert(0, i)
Modified var:.. list1 = [2, 0]
09:54:45.316959 line 4 for i in range(number):
Modified var:.. i = 3
09:54:45.317956 line 5 if i%2==0:
09:54:45.317956 line 4 for i in range(number):
Modified var:.. i = 4
09:54:45.318954 line 5 if i%2==0:
09:54:45.318954 line 6 list1.insert(0, i)
Modified var:.. list1 = [4, 2, 0]
09:54:45.318954 line 4 for i in range(number):
Modified var:.. i = 5
09:54:45.319952 line 5 if i%2==0:
09:54:45.319952 line 4 for i in range(number):
09:54:45.320950 line 9 return list1
09:54:45.320950 return 9 return list1
Return value:.. [4, 2, 0]
文章未经博主同意,禁止转载!