暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Python代码中使用命令行交互模式

生有可恋 2024-03-27
456

在调试代码时,我们会打断点让程序停下来,观察变量。除了断点进行调试,我们还可以使用 Python 自带的交互模式,在交互模式除了可以观察变量,还可以执行函数。

例子:

    import code


    # 定义一些变量
    var1 = 'Hello'
    var2 = 42


    def my_function():
    return 'This is my function.'
    # 进入交互模式,并继承所有变量
    code.interact(local=locals())


    在交互模式,可以继承代码中的变量和函数,通过交互模式调用函数、修改变量。

    交互模式使用了 locals() 来传递变量,关于 locals() 和 globals() 的区别,它们两个都用于获取变量,但作用域不同。

    1. locals()
      函数

      • locals()
        函数返回一个包含当前局部作用域中所有变量名和对应值的字典。局部作用域可以是函数内部,也可以是模块级别的任何代码块。

      • 在函数内部调用locals()
        函数会获取该函数内的所有局部变量。

      • 在全局作用域调用locals()
        函数会获取全局变量。

    2. globals()
      函数

      • globals()
        函数返回一个包含当前全局作用域中所有变量名和对应值的字典。

      • 在任何地方调用globals()
        函数都会获取全局作用域中的所有变量。


    对于需要维护数据的场景,也可以使用交互模式。比如数据存盘前需要进行调整,如果在程序中写数据处理逻辑,程序正常执行时并不会用到。使用过 django 的对这种场景应该非常熟悉,开发初期经常需要手工调整数据,比如删测试数据。

    最后需要补充一下,code 是标准库,不需要额外 pip 安装。

    全文完。

    如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

    文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论