重新运行ipython cpaste代码块

时间:2015-03-02 00:49:44

标签: python shell ipython

我运行了%cpaste foo并保存了代码块。我只需在shell上输入foo即可打印代码块。

如何重新运行该代码?我试过了exec('foo'),但它不起作用。

1 个答案:

答案 0 :(得分:2)

%cpaste -r将重新运行您在其中粘贴的最后一个代码块。 请记住,如果它在块中,则必须实际执行一个函数,而不仅仅是def。如果是即时动作,它将返回结果。

这实际上有效,但foo永远不会被执行。

In [24]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def foo():
:       print("bar")
:--
In [25]: %cpaste -r
Re-executing 'def foo():...' (30 chars) #foo is never called, so there's no result shown

这样也可以,并且执行foo以便得到结果。

In [26]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def foo():
:       print("bar")
:foo()
:--
bar #this is the result of immediate execution 
In [27]: %cpaste -r
Re-executing 'def foo():...' (36 chars)
bar #this is re-runned result