IPython:本身使用魔法函数的别名

标签 ipython alias ipython-magic

我找不到任何相关信息,所以我在这里问: 我想在 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/

相关文章:

python - 如何在 IPython notebook 中显示包函数的源代码

python - 运行 IPython 笔记本时如何(间歇性地)跳过某些单元格?

emacs - ipython emacs 缩进错误

python - IPython 笔记本不工作

python - IPython session 期间内存中对象的大小(使用 Guppy?)

function - 新定义的别名在函数内不起作用(zsh)

shell - `alias sudo="sudo "` 如何工作?

mysql - 将数据复制到另一个 SQL 表中的不同名称的列中

python - 适用于 Windows 的 IPython 集成开发环境

python - 在 IPython Notebooks 之间共享数据