我找不到任何相关内容,所以我在这里问: 我想在IPython中创建一个别名,它本身使用IPython-magic-function。
这意味着:我经常需要重新输入
%run process.py
因此我想创建一个这样的别名:
%alias rp %run process.py
创建有效,但在调用rp
时,却说找不到命令%run
。
关于如何做到这一点的任何想法?
答案 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