gpt4 book ai didi

python - 是否可以将变量从 pdb session 传递到原始交互式 session 中?

转载 作者:行者123 更新时间:2023-11-28 16:55:01 24 4
gpt4 key购买 nike

我正在使用 pdb 检查在 ipython session 中调用了 run -d 的脚本。能够绘制一些变量会很有用,但我需要在主 ipython 环境中使用它们才能做到这一点。

所以我正在寻找的是某种方法,可以在我退出 pdb 后使变量在主交互 session 中可用。如果您在最顶层的框架中设置了一个变量,它似乎确实存在于 ipython session 中,但这对更下方的任何框架都不起作用。

在下面类似export的东西:

ipdb> myvar = [1,2,3]
ipdb> p myvar
[1, 2, 3]
ipdb> export myvar
ipdb> q

In [66]: myvar
Out[66]: [1, 2, 3]

最佳答案

每个 ipython 的 docs ,还有来自 ipython 提示符的 run? 命令,

after execution, the IPython interactive namespace gets updated with all variables defined in the program (except for __name__ and sys.argv)

通过“在程序中定义”(术语的使用略显草率),它并不意味着“在那里找到的任何嵌套函数中的任何地方”——它意味着“在 globals()您正在运行的脚本/模块。如果您在任何类型的嵌套中,globals()['myvar'] = [1,2,3] 应该仍然可以正常工作,就像您希望的 export 如果它存在的话。

编辑:如果您在不同的模块中,则需要在原始模块的全局变量中设置名称——如果需要,在 import sys 之后, sys.modules["originalmodule"].myvar = [1, 2, 3] 会做你想做的事。

关于python - 是否可以将变量从 pdb session 传递到原始交互式 session 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1114080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com