我找不到任何相关信息,所以我在这里问: 我想在 IPython 中创建一个别名,它本身使用 IPython-magic-function。
这意味着:我经常需要重新输入
%run process.py
因此我想创建一个这样的别名:
%alias rp %run process.py
创建有效,但是在调用 rp
时,它说找不到命令 %run
。
关于如何执行此操作的任何想法?
最佳答案
试试这个:
当您进入 IPython 控制台时,键入 %run process.py
然后您可以使用%macro
魔法将rp
绑定(bind)到%run process.py
。
使用输入的 In
存储执行此操作。
%run process.py
%macro rp In[-2]
应该可以!
%macro
也可用于覆盖一系列输入,使用语法 %macro name range
- 其中 range 可以是整数或形式为 start 的整数-结束。
例如,如果您想使用单个命令为两个函数计时,您可以指定行范围。
定义函数:
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
将宏绑定(bind)到名称 time_fb
:
In[24]: %macro time_fb 22-23
宏绑定(bind):
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
关于IPython:本身使用魔法函数的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164254/