返回介绍

F.3 魔法函数

发布于 2024-01-27 21:43:10 字数 4467 浏览 0 评论 0 收藏 0

IPython 有大量所谓的魔法函数,能在探索和编程的时候帮助你。这里有一些非常重要的函数,特别是对于初级开发者来说。

为了看到你已经导入和活动的对象,可以输入 %whos 或 %who。让我们看一下它们的用法:

In [1]: foo = 1 + 4

In [2]: bar = [1, 2, 4, 6]

In [3]: from datetime import datetime

In [4]: baz = datetime.now()
In [5]: %who
bar baz datetime  foo

In [6]: %whos
Variable   Type    Data/Info
--------------------------------
bar    list    n=4
baz    datetime  2015-09-13 11:53:29.282405
datetime   type    <type 'datetime.datetime'>
foo    int     5

在你忘记了变量名称或者想要通过一个简洁的列表看到在变量中存储的内容时,这非常有用。

另外一个有用的工具是快速查找与库、类或对象相关的文档的能力。如果你在方法、类、库或属性名称的最后输入一个 ?,IPython 会尝试获取所有相关的文档,内联地展示它。举个例子:

In [7]: datetime.today?
Type:     builtin_function_or_method
String Form:<built-in method today of type object at 0x7f95674e0a00>
Docstring:  Current date or datetime:
      same as self.__class__.fromtimestamp(time.time()).

有大量与此类似的 IPython 扩展和函数,对开发极其有用,特别是随着你作为一名开发者不断成长,碰到更加复杂的问题时。表 F-1 列出了最为有用的几个工具,网络上还有一些非常棒的演讲稿和会议演讲(http://ipython.org/presentation.html)以及交互示例(http://nbviewer.jupyter.org/github/ipython/ipython/blob/master/examples/Index.ipynb),此外还有关于库的非常棒的文档(http://ipython.org/documentation.html)。

 所有的 IPython 扩展必需在 IPython 会话的开始使用 %load_ext extension_name 加载。如果你想要安装额外的扩展,GitHub 上有一个非常棒的可用扩展及其使用方式的列表(https://github.com/ipython/ipython/wiki/Extensions-Index)。

表F-1:有用的IPython扩展与函数

命令

描述

目的

文档

%autoreload

允许你只通过一次调用重新加载所有导入的脚本

在编辑器中修改脚本、在 IPython shell 中调试脚本,进行活跃开发的时候,非常有帮助

http://ipython.org/ipython-doc/dev/config/extensions/autoreload.html

%store

允许你存储保存的变量,在下一个会话中使用

在需要保存一些经常使用的变量,或者你的工作被中断因而需要保存当前的工作供以后使用时,非常有帮助

http://ipython.org/ipython-doc/dev/config/extensions/storemagic.html

%history

打印你的会话历史

展示你已经运行过的命令的输出

https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-history

%pdb

用于过程较长的调用的交互式调试模块

强有力的调试库,在导入了较长的脚本或模块时特别有用

https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-pdb

%pylab

引入 numpy 和 matplotlib 来与你的会话交互式工作

允许你在 IPython shell 中使用统计和图表工具

https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-pylab

%save

保存你的会话历史到一个输出文件

如果你花费了很长的时间调试,这是一个开始编写脚本的好方式

https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-save

%timeit

计算代码中一行代码或多行代码的执行时间

用于对 Python 脚本和函数进行性能调优

https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-timeit

还有很多可用的魔法命令(https://ipython.org/ipython-doc/dev/interactive/magics.html)。它们的有用性取决于你在开发中使用 IPython 的方式,但是随着你作为一名开发者不断成长,使用它们会通过 IPython 为你简化其他的任务。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文