从 Python 中调用命名空间获取本地变量

2023-12-13

我想从被调用函数中检索 Python 的局部变量。有什么办法可以做到这一点吗?我意识到这对于大多数编程来说并不合适,但我基本上是在构建一个调试器。例如:

def show_locals():
  # put something in here that shows local_1.

local_1 = 123
show_locals()  # I want this to show local_1.

我在身体里放了什么show_locals?如果我必须修改调用语句,我可以做的最小修改是什么?

Note:这必须在以下情况下起作用:show_locals与其调用者位于不同的模块中。


如果您正在编写调试器,您将需要大量使用inspect module:

def show_callers_locals():
    """Print the local variables in the caller's frame."""
    import inspect
    frame = inspect.currentframe()
    try:
        print(frame.f_back.f_locals)
    finally:
        del frame
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Python 中调用命名空间获取本地变量 的相关文章

随机推荐

  • iPhone ivar命名约定[重复]

    这个问题在这里已经有答案了 可能的重复 可可 Objective C 类中变量前面的下划线如何工作 我注意到 在很多参考资料中 我发现很多时候 变量在 h 文件中被命名为 variable 然后在 m 文件中被 synthesize d 为
  • 时钟和steady_clock测量的时间差

    我试图测量在代码中执行特定函数所需的时间 最初我使用的是clock 功能如下 clock t start clock do something clock t end clock printf Time taken f ms n doubl
  • 如何使用 Python/Django 在电子邮件中发送内联图像?

    我正在尝试使用 Python Django 发送带有内联图像的电子邮件 Here是显示我是如何做的代码 它仍在开发中 因此 现在要做的就是发送一封虚拟电子邮件 其中嵌入了大黄蜂的图片 然而 当我在 Gmail 收件箱中收到电子邮件时 我只看
  • 头文件中的变量声明 - 静态与否?

    当重构一些 defines我在 C 头文件中遇到类似于以下内容的声明 static const unsigned int VAL 42 const unsigned int ANOTHER VAL 37 问题是 静电会产生什么差异 如果有的
  • 检查 Glassfish DAS 是否正在以编程方式运行

    即使 Glassfish DAS 部署在本地计算机或远程计算机上 如何检查它是否正在以编程方式运行 使用Java6 我找到了一种除了 Linux 脚本之外检查 DAS 是否启动的方法 通过这种方式 我的应用程序和 DAS 是否位于同一台计算
  • PyQt5 GUI - 使用 PyInstaller 制作的 exe 无法打开

    我有一个 GUI 当我从 Anaconda Prompt 执行它时 它运行得非常好 我得到以下窗口作为输出 我已经使用 pip 安装了 pyinstaller 然后运行了该行 pyinstaller exe onefile my file
  • 如何将正在迭代的迭代器传递给函数?

    我正在迭代一个数组 根据当前值 我想将迭代器传递给子函数并让它处理多个值 然后在退出子函数时 继续迭代数组 下面是我迄今为止所能达到的最接近的结果 但我不断得到error use of moved value iter 我尝试过研究生命周期
  • 将 shell 输出重定向到文件 [重复]

    这个问题在这里已经有答案了 我正在 AIX 6 上工作 在 Korn Shell 上运行 java 命令 并尝试调试类加载问题 我把 verbose class 打印加载的类 然后 gt gt h ome user log log 将控制台
  • 如何配置 Unity 为 IEnumerable 注入数组

    我有一个课程需要IEnumerable我想用 Unity 解析它的构造函数参数并注入一个对象数组 这些简单的类说明了问题 public interface IThing int Value get public class SimpleTh
  • 如何构建支持超过 223 列鼠标输入的 Curses 程序

    我正在尝试让一个curses程序与我的终端跨显示器一起工作 但是 x 坐标无法移过第 223 列 而是循环移动 在源代码中 这似乎是因为它们被定义为 8 位 并且位置值仅在前 32 个值之后开始 即 x raw x 这是一个示例程序http
  • C++ 数组初始化

    float minTime 7 FLT MAX for int i 0 i lt 7 i cout lt lt Min lt lt minTime i lt lt endl 为什么我会得到以下输出 Min 3 40282e 038 Min
  • 全局变量和Python多重处理[重复]

    这个问题在这里已经有答案了 可能的重复 Python 多处理全局变量更新未返回到父级 我使用的是一台具有多个内核的计算机 为了提高性能 我真的应该使用多个内核 但是 我很困惑为什么这些代码没有达到我的预期 from multiprocess
  • 字符串中的 JavaScript var

    所以我有这段代码 想知道如何将我的 javascript var 放入这个字符串中 我似乎无法为自己编写工作代码 对于我想要的图像源picture value在那里 我尝试过不同的解决方案 但自己没能解决 非常感谢所有帮助 var text
  • 将多个“滑块”添加到同一个图表

    我正在使用 R 编程语言 使用 plotly 库 我能够制作以下交互式图表 library dplyr library ggplot2 library shiny library plotly library htmltools libra
  • 为什么上传alamofire后台请求不在后台执行?

    我使用 alamofire 将 30 mb zip 文件上传到服务器 这是我的要求 let configuration URLSessionConfiguration background withIdentifier identifire
  • 搜索和替换操作

    我有一个包含 URL 值的列表 例如 http farm6 static flickr com 5149 5684108566 aed8b9b52d s jpg 我怎样才能改变 s最后到 m对于所有发生的情况 尝试这个 str http f
  • Apache交叉编译错误./gen_test_char:无法执行二进制文件

    我花了很长时间才找到这个错误的解决方案 当尝试为 Arm 交叉编译 Apache 时 我确信这可能发生在许多其他架构上 我会从服务器文件夹中得到这个错误 gen test char cannot execute binary file 这意
  • @ngtools\webpack AOT 不起作用或在 95% 发射时冻结

    我一直在尝试让 AOT 与我的 Webpack 应用程序一起工作 ngtools webpack 有人能帮我吗 它似乎可以工作 但是 compiler js 仍然包含在捆绑包中 此外 它仍在寻找我的所有 html 文件 并在所有组件模板上获
  • C的隐藏特性

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我知道所有 C 编译器实现背后都有一个标准 因此不应该有任何隐藏功能 尽管如此 我确信所有 C 开发人员都有他们一直使用的隐藏 秘
  • 从 Python 中调用命名空间获取本地变量

    我想从被调用函数中检索 Python 的局部变量 有什么办法可以做到这一点吗 我意识到这对于大多数编程来说并不合适 但我基本上是在构建一个调试器 例如 def show locals put something in here that s