ipython:保存自定义函数(与别名类似)

时间:2014-08-03 18:56:17

标签: ipython

ipython中,我知道我可以保存别名。 是否有类似的方法来保存我自己的功能,以便下次运行ipython时可以使用?

让我说我有功能:

def x(a,b):
    print a+b

我尝试使用%store命令:

%store x
stored x (function)

但下次我开始ipython时会说:

name 'x' is not defined

2 个答案:

答案 0 :(得分:1)

我不知道你问的确切功能是否存在于ipython中。

我要做的是处理这种常见情况是复制保存在与笔记本相同的文件夹中的.py文件中的函数。然后,您可以在笔记本的开头导入功能。 通过这种方式,几个笔记本可以使用仅定义一次的功能。将笔记本和.py文件一起分发(用于协作或移动到不同的机器)也很容易。

或者,您可以将这些功能放在ipython笔记本中。从笔记本电脑,你可以"导入"另一个像这样的笔记本是一个.py文件,只需使用没有空格的笔记本文件名或' - '。 此方法与.py文件非常相似。优点是你可以添加一个更丰富的"功能描述(链接,图像,数学公式等)。缺点是你无法做到 在另一个python脚本中无缝导入函数。

这些方法的唯一缺点是,如果您有包含笔记本的文件夹和子文件夹的复杂结构,则需要在每个子文件夹中复制(或链接).py文件。为了避免这种情况 您可以将.py文件放在一个位置,并在笔记本中使用绝对导入。

答案 1 :(得分:0)

当您启动ipython时,您必须使用以下命令恢复已保存的变量,别名和函数:

%store -r

然而,这有可能无效,因为显然有bug