3

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

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

%run process.py

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

%alias rp %run process.py

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

4

1 回答 1

5

尝试这个:

当你进入 IPython 控制台时,输入%run process.py

然后你可以使用%macro魔法绑定rp%run process.py.

通过In存储输入来执行此操作。

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

应该管用!


%macro也可用于覆盖输入范围,使用语法%macro name range- 其中 range 可以是整数或形式为 start-end 的整数。

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

定义函数:

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
于 2014-06-11T16:41:34.403 回答