Shift+Tab是Jupyter中最即时的文档查看方式:1次弹出内联文档,2次展开参数类型,3次显示完整docstring摘要,4次打开全屏富文本窗口;func?输出结构化元信息,func??叠加源码展示;help()适合离线或嵌套对象但为纯文本流。

Shift+Tab 是最常用、最即时的查看方式
光标停在函数名右侧或括号内(比如 pd.read_csv 后面、或 pd.read_csv(|) 的竖线位置),按 Shift+Tab 就能弹出内联文档窗口。它不依赖代码执行,也不需要 import 成功——只要符号能被解析,就能响应。
连续按 2 次 Shift+Tab 展开参数类型和简要说明;按 3 次会显示完整 docstring 摘要(含返回值);按 4 次弹出全屏富文本窗口,支持 markdown 渲染、代码高亮和跳转链接(如 pandas 官方 API 页面)。
常见卡点:
- 没反应?检查是否在编辑模式(不是命令模式),且光标确实在函数名附近
- 只显示签名没说明?说明该函数 docstring 缺失或格式不规范(比如没写
Parameters区块) - 弹窗太小遮挡代码?鼠标悬停右上角,点
^展开,或点x左边按钮新开标签页浏览
函数名后加 ? 或 ?? 直接看源码级信息
func? 等价于 %pinfo func,输出结构化元信息:签名、docstring(自动解析 Google/Numpy 格式)、定义文件路径、行号、所属类(如 pandas.core.frame.DataFrame.groupby)。
func?? 在 ? 基础上叠加源码展示——如果源码可访问(非 C 扩展),会自动剥离装饰器包装层,保留原始缩进和注释,关键逻辑高亮显示。
注意点:
-
??对内置函数(如len、print)无效,因为它们用 C 实现,没有 Python 源码 - 自定义函数 docstring 写得越规范(带
Args:、Returns:),?输出的参数表就越完整 -
np.array?和help(np.array)效果接近,但前者更快、更轻量,后者可能触发冗长的交互式分页
help() 函数适合离线环境或嵌套对象
help(func) 是标准 Python 的文档入口,在 Jupyter 里依然可用,尤其适合:
- 模块层级查看(如
help(torch.nn)) - 无法用
?解析的对象(比如某些动态生成的类、或符号未绑定时) - 想把文档内容赋值给变量做进一步处理(
doc = help(os.path.join).__doc__不行,但doc = os.path.join.__doc__可以)
缺点是输出为纯文本流,不能折叠/展开,也不支持 markdown 渲染;遇到长文档容易刷屏,建议配合 print(func.__doc__) 截取核心段落。
容易被忽略的细节:文档质量取决于源码本身
Jupyter 能展示什么,完全取决于函数作者写的 docstring 是否完整、格式是否标准。numpy/pandas/scikit-learn 这类主流库通常很规范,但很多第三方包或内部工具函数只有单行注释,甚至为空——这时 ? 和 Shift+Tab 都只能显示签名,没法告诉你参数含义。
遇到这种情况,别硬猜:
- 先查官方文档网页(
func?弹窗里常带跳转链接) - 用
func??看源码逻辑,尤其注意默认参数和类型断言 - 运行
dir(func)或func.__code__.co_varnames获取参数名列表(对闭包/lambda 无效)
真正卡住的时候,往往不是操作不会,而是文档本身没写清楚。


















