IPython:使用魔术功能的Alias

时间:2014-06-11 13:30:49

标签: ipython alias ipython-magic

我找不到任何相关内容,所以我在这里问: 我想在IPython中创建一个别名,它本身使用IPython-magic-function。

这意味着:我经常需要重新输入

%run process.py

因此我想创建一个这样的别名:

%alias rp %run process.py

创建有效,但在调用rp时,却说找不到命令%run。 关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:5)

试试这个:

当您进入IPython控制台时,请键入%run process.py

然后,您可以使用%macro法术将rp绑定到%run process.py

使用In存储输入执行此操作。

%run process.py
%macro rp In[-2]

应该工作!


%macro也可用于覆盖一系列输入,使用语法%macro name range - 其中range可以是整数或整数形式的开头。

例如,如果您想使用单个命令计时两个函数,则可以指定行范围。

定义功能:

In[20]: def foo(x): return x
In[21]: def bar(x): return x*x

时间功能:

In[22]: %timeit foo(100)
10000000 loops, best of 3: 137 ns per loop
In[23]: %timeit bar(100)
10000000 loops, best of 3: 194 ns per loop

将宏绑定到time_fb

In[24]: %macro time_fb 22-23

宏绑定:

Macro `time_fb` created. To execute, type its name (without quotes).
=== Macro contents: ===
get_ipython().magic('timeit foo(100)')
get_ipython().magic('timeit bar(100)')

检查它是否有效:

In[25]: time_fb
10000000 loops, best of 3: 135 ns per loop
10000000 loops, best of 3: 192 ns per loop