在调试代码时,我们会打断点让程序停下来,观察变量。除了打断点进行调试,我们还可以使用 Python 自带的交互模式,在交互模式除了可以观察变量,还可以执行函数。
例子:
import code# 定义一些变量var1 = 'Hello'var2 = 42def my_function():return 'This is my function.'# 进入交互模式,并继承所有变量code.interact(local=locals())

在交互模式,可以继承代码中的变量和函数,通过交互模式调用函数、修改变量。
交互模式使用了 locals() 来传递变量,关于 locals() 和 globals() 的区别,它们两个都用于获取变量,但作用域不同。
locals()
函数:locals()
函数返回一个包含当前局部作用域中所有变量名和对应值的字典。局部作用域可以是函数内部,也可以是模块级别的任何代码块。在函数内部调用
locals()
函数会获取该函数内的所有局部变量。在全局作用域调用
locals()
函数会获取全局变量。globals()
函数:globals()
函数返回一个包含当前全局作用域中所有变量名和对应值的字典。在任何地方调用
globals()
函数都会获取全局作用域中的所有变量。
对于需要维护数据的场景,也可以使用交互模式。比如数据存盘前需要进行调整,如果在程序中写数据处理逻辑,程序正常执行时并不会用到。使用过 django 的对这种场景应该非常熟悉,开发初期经常需要手工调整数据,比如删测试数据。
最后需要补充一下,code 是标准库,不需要额外 pip 安装。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




