由于没有单步调试debug的习惯,一般都是在代码中加入print查看信息,如果一没有问题,那么就需要继续在别处添加print语句。
程序变了,又得运行一次程序,程序运行速度快还好。要是运行的慢了,又得等很久。
之前就一直在想着,如何在程序运行的过程中打开一个携带上下文环境的命令行,这样就很方便查看变量信息,灵活debug了。
可能是由于搜索的方法不对,一直没有找到这样一个库。
直到今天,才遇到code这个内建库(没有读过官方文档的后果)!
所以这个库的作用其实也很明显了,就是可以创建一个Python解释器。
这里主要提供一种最简单的使用方法,想要知道更多的解释和功能可查看py3.7官方文档:
import code
a = "abc"
b = "def"
c = a + b
code.interact(banner="entering", exitmsg="exiting", local=locals())
print(a)
print(b)
print(c)
#######################
# $ python test.py
# entering
# >>> a
# 'abc'
# >>> b
# 'def'
# >>> c
# 'abcdef'
# >>> c += 'xyz'
# >>> c
# 'abcdefxyz'
# >>>
# abc
# def
# abcdefxyz
注意到,在打开的命令行中,可以正常查看变量‘a’,‘b’,‘c’的值,并且,还可以修改值。所以使用这个库也是要慎重的。
另外,可以看到,在interact函数中传入了一个banner参数,该参数是一个入口消息,即进入交互式命令行时会先打印该消息。同样在较新版本中存在一个exitmsg参数,会在退出交互式命令行时打印(由于本人py版本略低3.5不支持,故没有演示。实际上在3.6的时候,就首次加入了这个参数)。