You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Jupyter Notebook添加全局文档字符串并通过help调用

解决Jupyter Notebook全局文档字符串与help调用问题

核心原因

用%run导入Notebook时,脚本会直接在当前命名空间执行所有代码,并不会生成对应Notebook的模块对象,所以直接help("user_tools")或类似调用无法找到目标对象,自然无法展示全局文档。要实现需求,必须手动把所有辅助函数封装到一个统一的容器对象中,并为这个容器添加文档字符串。

可行方案

方案1:封装到自定义类(推荐)

在你的辅助工具Notebook(如user_tools.ipynb)的末尾添加以下代码:

class UserTools:
    """
    工作辅助工具集合,包含以下可用函数:
    - foo(): 处理XXX场景的辅助函数,支持XX参数,返回XX结果
    - bar(): 完成YYY操作的工具函数,输入XX格式数据,输出XX格式结果
    """
    pass

# 将已定义的辅助函数绑定到类上
UserTools.foo = foo
UserTools.bar = bar

# 暴露全局实例,方便调用
user_tools = UserTools

在导入的Notebook中执行%run user_tools.ipynb后,直接调用help(user_tools)就能看到完整的全局文档和函数列表。

方案2:用字典封装

如果不想用类,也可以用字典统一管理函数:

user_tools = {
    "foo": foo,
    "bar": bar
}

user_tools.__doc__ = """
工作辅助工具集合,包含以下可用函数:
- foo(): 处理XXX场景的辅助函数,支持XX参数,返回XX结果
- bar(): 完成YYY操作的工具函数,输入XX格式数据,输出XX格式结果
"""

导入后同样可以通过help(user_tools)查看文档。

方案3:模拟原生模块(进阶)

想要完全复刻Python模块的体验,可以用types.ModuleType创建模块对象:

import types

# 创建模块对象
user_tools = types.ModuleType("user_tools")
user_tools.__doc__ = """
工作辅助工具集合,包含以下可用函数:
- foo(): 处理XXX场景的辅助函数,支持XX参数,返回XX结果
- bar(): 完成YYY操作的工具函数,输入XX格式数据,输出XX格式结果
"""

# 挂载辅助函数到模块对象
user_tools.foo = foo
user_tools.bar = bar

# 将模块对象加入全局命名空间
globals()["user_tools"] = user_tools

这种方式的输出风格和原生模块完全一致,help(user_tools)的展示效果最接近标准库模块的帮助信息。

内容的提问来源于stack exchange,提问作者OldKingCole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:03:16