"Return"在脚本中间



我正在调试一个脚本,暂时想在中间停止脚本并为不同的变量绘制一些值。 在 Python 中没有办法从脚本中"返回"吗? 我不想完全退出Python。 从本质上讲,我想要的是在特定点冻结脚本。 如果我可以插入一个命令(例如,return)来执行此操作,那就太好了,然后在完成调试后将其删除。

以下是实现这种事情的几种方法,我认为这些事情在我目前的工作环境中不优雅:

(1) 将脚本的代码放在一个函数中,并在该函数的中途返回所需的变量。

(2)注释掉我想停止的点之后的所有代码。

(3) 将所有需要的变量保存到磁盘,并使用调用 quitsys.exit 完全退出 Python。

没有更好的选择吗?

理论问题

为什么 Python 的设计者决定不允许在脚本中使用return语句? 这有什么逻辑吗?

您可以使用pdb绘制某些内容(至少,它在OS-X上对我来说效果很好):

from matplotlib import pyplot as plt
import numpy as np
array_x = np.arange(10)
array_y = np.arange(10)
import pdb; pdb.set_trace()
print (array_x, array_y)

和我的控制台输出(包括错别字):

$ python ~/sandbox/test.py
> /Users/mgilson/sandbox/test.py(9)<module>()
-> print (array_x, array_y)
(Pdb) plt.ion()
(Pdb) plt.plit(array_x, array_y)
*** AttributeError: 'module' object has no attribute 'plit'
(Pdb) plt.plot(array_x, array_y)
[<matplotlib.lines.Line2D object at 0x112120610>]
(Pdb) c
(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))

我用了plt.ion(),但你可能同样容易地使用plt.show()(在你定义了你的情节之后)。

相关内容

  • 没有找到相关文章

最新更新