IPython的进阶使用:魔法命令
该文已收录至笔记, 不再更新 Last Update: 2019.1.22.
对应上一篇是 IPython基础使用.
- 简单命令
- Shell与IPython交互
- 配置IPython和定制功能
- 方便的文件目录内容操作
- 更复杂的查看历史记录
- 查看文件和快速调入命令
- 强大的测试功能
- 其他的交互
简单命令
获得帮助 %magic / %lsmagic / %quickref / %man / %pinfo / %pinfo2
-
%magic
: 查看模式命令的帮助. -
%lsmagic
: 简单地列出可用的魔法命令. -
%quickref
: 所有ipython的特定语法和魔法的快速参考. -
%man
: Shell命令man, 获得shell命令帮助. -
%pinfo
: 对象的详细信息(后面跟对象), 相当于object?
-
%pinfo2
: 对象的额外详细信息(后面跟对象), 相当于object??
文件的复制删除移动
这些和Shell命令基本一致.
-
%mv
: 移动文件,mv 旧位置 新位置
-
%cp
: 复制文件,cp 原文件 新文件
, 文件夹加-r
-
%mkdir
: 创建文件夹 -
%rm
: 删除文件. 强制删除文件夹rm -rf 文件夹名
-
%rmdir
: 删除文件夹, 需要文件夹为空.
清除和重置 %clear %reset %reset_selective %xdel
-
%clear
: 清屏, 相当于!clear
. (只是把内容放到上面去) -
%reset
: 重置IPython, 清理相关环境对象, 但历史信息会被保留.-
-s
: 软重置, 只清空命名空间. 对象的引用会被保留. -
-f
: 不询问, 直接重置. -
in
: 重置输入历史 -
out
: 重置输出历史 -
dhist
: 重置目录历史 -
array
: 只重置numpy arrays类的变量.
-
-
%reset_selective
: 格式是%reset_selective regex
, 即根据匹配正则表达式的变量给删掉. -
%xdel
: 后面跟变量名. 会清除该变量以及所有相关引用. 该对象同样会在输出的历史中被删去.
对象通配符搜索 %psearch
可以找出命名空间中符合通配符式的对象.
该用法和*Error?
一致 (最后必须是?
), 等价于%psearch *Error
.
通式 : %psearch [options] PATTERN [OBJECT TYPE]
-
PATTERN
是含有*
的模式字符串. 默认下,_
开头的对象不会被匹配. 默认下大小写敏感. -
OBJECT TYPE
指定类型的才被匹配. -
-a
: 包括_
开头的对象也会被匹配 -
-i或-c
: 匹配大小写不敏感 /敏感 (缺省). -
-e或-s 命名空间
: 排除/搜索指定的命名空间, 如builtin
,user
,alias
,internal
,user_global
. 默认搜索上述5个命名空间.
输出形式控制 %pprint %precision %page %doctest_mode %xmode %colors
-
%pprint
: pretty print的开关, 更便于控制和显示输出. -
%precision
: 控制浮点型输出效果. 不加参数会恢复默认u'%r'
.-
%precision 3
会返回u'%.3f'
, 即浮点显示3位小数 -
%precision %i
会返回u%i
, 即整形输出, 忽略小数. -
%precision %e
会返回u%e
, 即指数形式如9.364e+04
.
-
-
%page
: 使用pager来显示对象, pretty print. 形式:%page [options] OBJECT
, 不指名对象就是_
(最后的输出). 如果加-r
选项, 就不使用pretty print而是直接字符串化. -
%doctest_mode
: 开关doctest模式. 该模式输出更像经典python shell输出, 包括使用>>>
提示, 关闭pretty print, Plain模式的Exception. 输出的结果可以直接用于doctest. -
%xmode
: 控制Exception的输出格式, 有Verbose
,Plain
,Context
三种. -
%colors
: 切换颜色主题, 例如%colors nocolor
就是传统单调的黑白色.
Shell与IPython交互
执行Shell命令 %sc %sx %system
三者都是执行命令并捕获输出. %sx
和%system
等价.
%sc
%sc
实际是!
的原始命令. 格式是 %sc [options] varname=command
. 原始的sc会利用commands.getoutput()
执行命令并捕获返回, 该返回会储存到变量名中, 捕获的是原始的字符串(包含\n
等). varname=
这里是强制必须的.
-
-l
: 将输出的字符串用split
方法分割后变成列表来返回.%sx
命令自带此功能, 现在的!
也带此功能. 有时使用%sc
就正好需要其原始的字符串. -
-v
: 输出变量的内容. - 输出的结果捕获后(假设变量a), 使用
a.l
可以获得split后的列表(相当于-l
),a.s
获得空格
作为分隔符的字符串,a.n
获得换行符作为分隔的字符串. (即使-l
获得的输出也支持这个功能) -
!命令
实际的输出只是显示出来, 而并没有实际到Out[x]
处, 要输出到IPython的输出, 需要使用!!命令
或%sc 命令
. (有_N
等特殊变量的效果)
例如,
%sc -l var = ls ~
和var = !ls ~
以及var=%sx ls ~
等价.
%sx / %system
%sx 命令
相当于!!命令
的效果. 会根据换行符分割输出并保存到列表当中进行返回. 有点类似%sc -l
的效果. 返回的输出同样支持上述的a.l
,a.x
,a.n
.
环境变量 %env %set_env
-
%env
: 显示环境变量%env 变量名
, 不加参数显示所有环境变量 (字典形式).
该魔法也可赋值, 支持
%env var val
,%env var=val
和%env var=$val
. 最后这种可以使用python变量.
-
%set_env var=val
, 设置环境变量. 也支持上面提及的另外两种形式.
执行脚本 %%script %killbgscripts
-
%%script
使用Shell命令运行Cell的内容
该命令在Cell里和脚本首行的#! /bin/bash
类似, 可以指定执行该cell内容的程序.-
--bg
: 背景运行, 结果需要用--out
和--err
指定. -
--proc PROC
: 储存Popen常量, 使用背景运行--bg
时才有意义. -
--out OUT
: 储存输出的变量. -
--err ERR
: 储存错误输出的变量.
-
In [1]: %%script bash
...: for i in 1 2 3; do
...: echo $i
...: done
-
%killbgscripts
是杀掉所有由%%script
进行的背景运行的程序及其子程序.
配置IPython和定制功能
很多储存下来的配置会保存到~/.ipython/profile_default/db/
下的相应文件中.
%alias / %unalias / %alias_magic 别名功能
定义别名用于系统命令. 用法: alias 别名 指令
. 别名的优先级低于魔术命令以及python变量. 删除别名可以用unalias 别名
.
-
%l
: 可以代表别名使用时后面的整行参数 (不包括别名本事). 和下面的%s
使用冲突. -
%s
: 可以代表传入参数, 每一个%s
分别按顺序代表一个参数. - 使用
$变量名
可以将python变量传给命令, 而$$变量
则是shell变量.
In [1]: alias parts echo first %s second %s
In [2]: %parts A B
first A second B
In [3]: %parts A
Incorrect number of arguments: 2 expected.
parts is an alias to: 'echo first %s second %s'
In [6]: alias show echo
In [7]: PATH='A Python string'
In [8]: show $PATH
A Python string
In [9]: show $$PATH
/usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
一般, 别名定义后仅对该次对话起效. 如果想要日后也可以使用, 可以使用
%store
储存起来.
ln [4]: %alias largest ls -1sSh | grep %s
ln [5]: %store largest
Alias stored: largest (ls -1sSh | grep %s)
## 重启对话后, 使用`%store -r`来恢复.
魔法别名 %alias_magic
形式: %alias_magic [-l] [-c] name target
可以创建魔法的别名, -l
是行魔法(%
开头), -c
是cell魔法(%%
开头). 不加选项则两种同时设置. 如果不存在魔法可能报错.
In [1]: %alias_magic t timeit
Created `%t` as an alias for `%timeit`.
Created `%%t` as an alias for `%%timeit`.
In [4]: %alias_magic --cell whereami pwd
UsageError: Cell magic function `%%pwd` not found.
In [5]: %alias_magic --line whereami pwd
Created `%whereami` as an alias for `%pwd`.
可执行文件导入到别名列表 %rehashx
该命令会检查每一个在$PATH
搜索路径中的可执行文件, 并把该可执行文件储存为别名. 对于window针对exe/com/bat
文件. 该命令同时会重置模块补全的root模块缓存.
- 想直接使用Shell命令时, 可以用该魔法. 例如想直接用
echo
. 一般情况慎用. - 在改变了
PATH
环境变量想将可执行文件在IPython中也被找到时可以考虑该魔法.
%store 储存变量或别名
轻量级储存python变量. 可以储存变量, alias定义的别名等. 格式是%store [变量]
, 如果不加变量, 将会显示储存的所有变量及值. 变量需要时pickleable
的(参看pickle模块).
-
-r
: 不跟变量名是恢复全部变量, 也可以后跟多个变量名来恢复具体的变量. -
-d 变量
: 删除变量. -
-z
: 清空所有储存的变量 -
>文件名
: 将变量储存到文件, 如果是>>文件名
则是追加.
%macro 定制宏
可以将部分历史记录到指定为宏mname
, 格式:
%macro [options] mname n1-n2 n3-n4 ... n5 .. n6 ...
接受历史记录范围, 文件名以及字符串对象作为宏的定义. 定义的宏的内容可以print 宏名
显示出来.
-
-r
: raw输入. 缺省下, 会保存处理过的历史记录而不是原始的%ls
, 这更利于日后重新运行. 因此该选项仅为了人可读而使用. -
-q
: 默认下会提示创建了宏. 使用该选项可以不输出.
输入范围内容格式可参考
%history
所使用的记录形式.
%macro my_macro 44-47 49
%bookmark 目录标签
格式%bookmark 标签名 目录
, 可以将某个目录定义为标签, 使用cd -b 标签名
可以跳转到标签(不产生歧义前提下, 可以不要-b
). 书签会被保存, 在以后的对话中均起效. 更多bookmark使用参看后面的部分介绍.
自动功能的设置 %autoindent / %automagic / %autocall
-
%autoindent
: 自动缩进开关, 默认打开. -
%automagic
: 打开时可省略 %magic 前的百分号。默认开启. -
%autocall
: 使得函数不用括号就可调用(但仍需要,
.) 即更为像命令. 默认是关闭的. 一般不要用这个功能.
加载IPython扩展 %load_ext %unload_ext %reload_ext
可以加载%load_ext
或卸载%unload_ext
或重新加载%reload_ext
一些扩展模块. 参数是模块名. 如何安装或定制扩展插件请参看别的材料.
扩展插件可参看官方文档的介绍, 例如一些扩展的魔法
autoreload
,storemagic
,oct2py
等等.
配置IPython %config
格式 %config Class[.trait=value]
. 只输入%config
可以输出可以设置的类对象, 输入%config 类对象
可以查看该对象可以设置的项和参考的值.
除非明确知道要设置什么, 否则一般不用动该命令.
方便的文件目录内容操作
%cd 工作目录切换
-
%cd
: 切换当前目录-
cd 'dirname'
: 切换到指定目录 -
cd -
: 切换到上次的目录 -
cd -<n>
: 切换到指定目录历史记录. -
cd --foo
: 切换到目录历史记录匹配foo
. -
cd -b <bookmark>
: 可以跳转到标签目录. 如果标签名和目录名不冲突, 不加-b
也可以.-b
以后按tab
可以补充书签名. -
-q
选项可以抑制切换文件夹后显示文件夹名
-
%pwd 和 %ls 显示当前目录及目录内容
-
%pwd
: 显示当前目录 -
%ls
: 简单显示目录内容, 相当于ls -F -G
.-
%ll
: 详细目录内容, 相当于ls -F -G -l
. -
%lf
: 显示详细的目录内的文件,相当于ls -F -l -G %l | grep ^-
-
%lk
: 显示所有链接文件的详细信息, 相当于ls -F -l -G %l | grep ^l
-
%lx
: 显示所有可执行的文件的详细信息, 相当于ls -F -l -G %l | grep ^-..x
-
%ldir
: 显示所有文件夹的详细信息, 相当于ls -F -G -l %l | grep /$
-
%bookmark 目录书签
%bookmark
命令可以保存工作目录书签. 工作目录书签即使登出后再登入仍然有效, 会被保存到~/.ipython/profile_default/db/bookmarks
内.
-
%bookmark -l
: 列出所有目录书签 -
%bookmark mark dir
: 将指定目录dir
保存为书签mark
. 如果只有mark
, 则将当前目录保存为书签. -
%bookmark -d mark
: 删除书签 -
%bookmark -r
: 删除所有书签 -
cd -b 书签名
: 跳转到标签目录. 可以不加-b
.
%dhist 目录历史记录
显示当前会话的目录的历史.
-
%dhist
: 显示所有目录历史 -
%dhist n
: 显示最近n个的目录历史 -
%dhist n1 n2
: 显示n1到n2条的目录历史 (不包括n2) -
cd -<n>
: n是一个数字, 代表第n条的目录记录. 输入cd -<TAB>
可以列出可选的目录历史.
%pushd, %popd, %dirs 目录堆栈
这三个命令和bash的用法略有不同.
-
%pushd <dir>
: 将当前目录加入堆栈, 并切换到dir文件夹.如果不加目录, 则将当前目录加入堆栈但不切换. 这和bash里的用法不同, bash里面直接pushd
会切换到堆栈第二的文件夹, 并将该文件夹放到栈顶. -
%popd
: 切换到栈顶文件夹. 并从栈中移除文件夹. -
%dirs
: 列出文件夹堆栈的内容.
更复杂的查看历史记录
- IPython支持使用
上/下
键来调用之前的历史命令. 也可以使用Ctrl+p/n
来查看. - 历史搜索:
Ctrl+R
, 然后输入命令的一些部分内容, 就可以找到相应匹配的内容. -
_
,__
,___
和_i
,_ii
,_iii
变量保存着最后三个输出和输入对象。 -
_n
和_in
(这里的n表示具体的数字)变量返回第n个输出
和输入
的历史命令。返回的字符串. 例如:_2
,_i3
.
%history / %hist 历史命令记录
可以查看历史命令, 包括本会话或者全局. 可以加入历史编号. 简称为%hist
. 默认显示当前会话的历史记录.
历史记录的格式是会话号/行数
. 上一个会话第7-10行: %hist ~1/7-10
, 这里~
表示当前会话之前N个会话. 甚至可以是 ~8/1-~6/5
跨会话的范围. 支持多个范围, 用空格
隔开.
-
-n
: 可以显示序号, 这里的序号和ln [x]
的x一致. 例如%hist -n 10-20
-
-g
: 可以显示所有历史记录, 返回的是会话号/命令序号: 命令详细
的输出, 当前会话显示的是命令序号: 命令详细
. -
-u
: 当使用-g
时只显示不重复的记录. -
-f 文件名
: 将历史命令保存到指定文件. 这里会和输入保持一致, 魔术命令保留%
, 避免这个问题可以删掉开头的%
或者用logstart
. -
-o
: 同时输出output. -
-p
: 输出时打印>>>
提示符. -
-l <N>
: 显示所有会话的最后N行. 默认是10. -
-t
: 显示的历史记录魔术命令会被翻译成实际执行的命令. 例如%cd
变成get_ipython().magic("%cd")
记录器 %logstart / %logstop / %logon / %logoff / %logstate
-
%logstart
: 开始记录器, 记录命令过程. -
%logstop
: 终止记录器, 停止记录. -
%logoff
: 暂停记录, 但不退出记录器. 前提使用了%logstart
. -
%logon
: 恢复记录, 针对%logoff
而言. 前提使用了%logstart
. -
%logstate
: 记录器的状态, 是开启还是关闭?
%logstart [-o|-r|-t] [log_name [log_mode]]
logstart会启动记录器并将命令记录到某个py文件. 他有几种工作模式:
-
append
: 追加模式, 将记录追加到某个文件. -
backup
: 备份模式, 将任何已存在的文件重命名为name~
,再开始name
文件的记录. -
global
: 将记录追加到用户目录下的一个log文件. -
over
: 覆盖任何已存在的文件. -
rotate
: 顺序记录文件, 例如name.1~
,name.2~
等.
上述命令通式的参数:
-
log_name
是保存命令记录的文件.- 如果不指定, 就会保存到当前目录下的
ipython_log.py
, 使用rotate
模式(顺序记录多个). - 如果指定记录文件, 会使用
backup
模式进行.
- 如果不指定, 就会保存到当前目录下的
-
log_mode
: 参看上述工作模式. -
-o
: 同时记录IPython的输出 (即Out[x]), 输出部分记录时以#[Out]#
作标记. 使用awk -F'#\[Out\]# ' '{if($2) {print $2}}' ipython_log.py
可以过滤掉这些输出. -
-r
: 记录原始输入. 对于魔术命令, 如%exit
实际记录是_ip.magic("exit")
, 如果使用-r
, 记录的会变成原始记录%exit
. 使用转换后的记录有利于再次被运行. -
-t
: 追加时间戳到每行输入前(会被注释掉).
%save 保存历史记录到文件
可以保存历史记录和宏到指定文件filename
, 格式:
%save [options] filename n1-n2 n3-n4 ... n5 .. n6 ...
-
-r
: raw输入. 缺省下, 会保存处理过的历史记录而不是原始的%ls
, 这更利于日后重新运行. 因此该选项仅为了人可读而使用. -
-f
: 强制覆盖, 不作提示. -
-a
: 追加内容到文件, 而不是覆盖.
输入范围内容格式可参考
%history
所使用的记录形式.
%notebook 保存为notebook
使用%notebook 文件名
, 可以将当期会话的历史记录输出到一个notebook文件(.ipynb
).
%pastebin 上传代码到Gist Pastebin
用法: %pastebin [-d "Custom description"] 1-7
, 返回相应的URL.
-
-d
: gist的代码说明. 默认Pasted from IPython
. - 内容部分, 可以使历史记录范围, 文件名, macro宏或者字符串.
查看文件和快速调入命令
显示和编辑文件内容
-
%cat
: 列出文件内容. -
%pycat
: 列出文件内容, 并进行python的语法着色. -
%edit
: 使用默认编辑器(一般是vim)来编辑文件, 可以在$EDITOR
环境变量设置. 默认情况, 编辑后执行代码. -
%more
/%less
: 参考shell相应命令的使用, 逐页显示内容.
源文件内容查看 : %pfile / %pdoc / %pdef / %psource
可以显示变量/对象的特定信息, 如函数的源代码(%psource
), 文件的源代码(%pfile
),文档字符串(%pdoc
)、定义头部(%pdef
).
%pfile
魔法命令也可以接收一个Python文件名,将会以代码高亮的形式打印文件的内容。
加载代码: %load / %loadpy
可以读取一个文件, URL, 历史记录范围, macro宏, 或者用户命名空间元素.
-
-r 行
: 指定行或者范围. 如x-y
,x:y
(到y-1). 留空的话代表开头或结尾. -
-s 符号
: 指定读取源文件的某函数/类. -
-y
: 读取大于20万字符时不要询问确定. -
-n
: 搜索源码时包括用户命名空间.
%load myscript.py
%load 7-27
%load myMacro
%load http://www.example.com/myscript.py
%load -r 5-10 myscript.py
%load -r 10-20,30,40: foo.py
%load -s MyClass,wonder_function myscript.py
%load -n MyClass
%load -n my_module.wonder_function
上个输出变输入或调用历史输入 %recall / %rep
%recall
, 简化是%rep
. 不加参数直接获取上一次命令的输出, 或加参数提取某个历史命令.
In[2]: "".join(l)
Out[2]: heivaan
In[3]: %recall
In[4]: heivaan # 自动填入上次的结果.
# 可以用于调用历史命令, 行数参考%hist
ln[5]: %recall 45
ln[6]: %recall 1-4
重新运行: %rerun
重复上次的输入. %rerun
是重复上次的输入并运行. %rerun 1-4
是重复运行历史命令1-4.
-
-l <n>
: 重复最后几行输入, 不包括当前命令. -
-g <str>
: 重复最近的一个含有字符串str的命令.
粘贴内容 %paste / %cpaste
- 使用
%paste
可以将剪贴板内容进行粘贴. 可以解决ctrl+v
一些粘贴时缩进等问题. 另外一些+
,-
等开头的代码也会被处理. -
%cpaste
和%paste
类似, 提供一个交互界面, 以便输入多个代码块.
强大的测试功能
%run 运行脚本
可以直接执行脚本。%run file [args]
, args
是可以传入到执行脚本的参数。脚本运行后, 变量将继续保留到交互的命名空间中. 文件运行时, 默认只会传入__name__=='__main__'
和sys.argv
的变量, 像一般执行脚本一样运行. 如果文件名后缀是.ipy[nb]
,将会以ipython脚本来执行.
-
-i
: 继承当前的变量空间到脚本, 即可在脚本中使用外部定义的变量. -
-n
: 使得__name__
不是设置'__main__'
, 而是类似import
处理, 避免执行if __name__ == "__main__"
部分. -
-e
: 忽略sys.exit()
或SystemExit
错误. 这对于单元测试是有用的,可以看到测试结果而不是单元测试模块的反馈. -
-t
: 最后显示CPU消耗时间. 可以用-N<数字>
来指明脚本执行次数 (返回总时间). -
-d
: 使用pdb
来控制运行脚本进行调试. 默认情况在第一行就是断点, 可以用-b<N>
可以设置断点在40行. -
-p
: 使用python profiler模块来控制执行. 参看%prun
. 这种模式下程序变量不会返回到交互模式中. -
-m
: 会直接运行模块, 类似于python -m 模块名
. -
-G
: 取消 shell-like glob 参数扩展.
%prun 代码分析器运行脚本
%prun
会使用代码分析器(python code profiler)来运行代码, 这点和run直接用解释器运行不同. 他并不是运行一个文件 (不同于%run
), 而是运行后续的一行代码或一块代码(cell模式, 可以在prun后同时跟上表达式). 代码分析器运行类似于profile.run()
的效果, 命名空间会内部进行管理.
%run -p file.py
可以对文件使用代码分析器.
逐行分析: %lprun / %mprun / %memit
这三个魔法命令需要安装逐行分析工具line_profiler
和memory_profiler
包后才能使用. 他们和前面的prun
类似可以对代码运行进行分析和统计, 核心是可以对每行的代码都进行统计, 从而分析代码执行时那些代码消耗资源更多. lprun
主要是时间, mprun
主要是逐行内存分析, memit
单个表达式内存分析.
最近报错反馈 %tb
会打印最近的一次traceback报错的信息.
%debug 和 %pdb 进行快速debug
ipython带有一个强大的调试器ipdb
。无论何时控制台抛出了一个异常,我们都可以使用%debug
魔法命令在最近的异常点启动调试器。接着你就能在调试模式下访问所有的本地变量和进行整个栈的回溯。在调试器中输入命令可以进行调试:
-
?
可以查看所有的可用命令列表。 -
!
前缀, 用于在ipdb中执行任意python代码. -
q
(quit) 退出调试器。c
(continue), 退出调试器,继续执行程序。 -
u
和d
(up/down) 向上和向下访问栈 -
<enter>
,重复上一个命令 -
r
(return),从子程序跳出, 知道当前函数的返回 -
n
(next),执行程序的下一步 -
s
(step),进入子程序 -
p
(print),打印变量 -
h
(help),帮助 -
l
(list),显示在文件中的当前位置。
我们也可以使用%pdb
魔法命令来激活IPython调试器,这样,每当异常抛出时,调试器就会自动运行。(不用再手动%debug
进入ipdb
)
运行时间分析: %time和%timeit
%time
可以直接对后面的单行表达式进行运行时间的统计. 在notebook的cell里, 可以统计整个cell的运行时间, 此时后面不要跟表达式.
%timeit
和%time
类似, timeit可用于单行代码, 也可以用于cell中, 用于运行时间的统计. timeit更为高级, 可以直接指定运行的次数和循环数. 进行更细节的分析.
-
-n<N>
选项 : 可以控制命令在单次循环中执行的次数. 不指定的话, 会执行适配的次数. -
-r<N>
选项 : 控制执行循环的次数,并取最佳结果进行返回, 默认3次循环。 -
-t
: 使用time.time
来测定时间, Unix的默认, 测定的是wall time
. -
-c
: 使用time.clock
来测定时间, Windows的默认测定walltime. Unix会使用resource.getrusage
来返回CPU用户时间. -
-p<N>
: 使用小数点后N位的精确度来显示结果, 默认是3. -
-q
: 不显示结果. -
-o
: 返回一个TimeitResult
, 能储存在变量内用于检查更详细的结果.
In [24]: %timeit [x*x for x in range(100000)]
100 loops, best of 3: 15.3 ms per loop
## 100 loops是-n控制, 一次循环的重复数. best of 3是3次循环最佳的一次.
变量查询 %who %whos %who_ls
均会返回当前交互命令下命名空间的变量(包括模块, 函数等), 均支持参数指定返回的类型, 例如who str
就只会返回str
类型的变量. 还如function
, class
, module
等.
-
who
: 以最简洁形式输出返回的变量 -
who_ls
: 返回的是列表, 包含各个变量名(字符串) -
whos
: 输出包括变量名, 类型和变量值. 更为直观好用.
其他的交互
%matplotlib Matplotlib交互
-
%matplotlib inline
: Notebook的行内后端支持. -
%matplotlib
: 使用TkAgg作为缺省的后端. 后面也可跟qt, qt5, tk, gtk, wx, notebook等.
%pylab PyLab交互
加载Numpy和Matplotlib进行交互. 实际会进行以下内容, 因此可以直接调用相应内容.
import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot
from IPython.display import display
from IPython.core.pylabtools import figsize, getfigs
from pylab import *
from numpy import *
- 在最后可以指明gui. 包括
inline
,agg
,qt
,gtk
等等. -
--no-import-all
参数可以不加载最后两行.
%gui 开关GUI事件循环集成
详情请看帮助.