繁体   English   中英

在功能范围内交互使用python控制台而无需调试模式

[英]interactive use of python console inside function scope without debugging mode

这是我想要的:

def f():
    x = 3
    return

在控制台中运行该命令并要求x不会给出任何结果,因为x在函数范围内。 替代方法是将所有代码复制到新脚本中,然后取消制表并运行它。 然后我可以要求x的值。 如果我在类内部有一个复杂的函数f()或更糟糕的方法,那么对复制/取消固定/交互输出以及代码修改/正确地复制/制表,这可能是一个令人沮丧的操作。

我可以在功能范围内获得交互式控制台的唯一方法是使用pdb,但我想在其中使用干净的控制台,而不要使用调试器。

> x
Traceback (most recent call last):

  File "<ipython-input-25-401b30e3b8b5>", line 1, in <module>
    x

NameError: name 'x' is not defined

我使用IPython作为更好的Python控制台:

import IPython

def some_complex_fn():
    x = 42
    IPython.embed()

some_complex_fn()

然后,交互式控制台会知道x

我找不到“经典” Python控制台是否具有任何类似的API。

如果您正在编写Web应用程序,那么带有Web界面的调试器可能会更好-例如Werkzeug调试器也包含一个交互式控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM