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

如何找回Jupyter Notebook运行内核中已加载的丢失函数?

恢复Jupyter内核中加载的自定义函数代码

以下是几种可行的方法,直接在Jupyter单元格中运行即可:

1. 直接获取单个函数的源码

使用inspect模块可以直接提取函数的原始代码,这是最常用的方法:

import inspect

# 将your_function_name替换为你要恢复的函数名
print(inspect.getsource(your_function_name))

运行后会直接输出该函数的完整源码,你可以复制到新单元格中保存。

2. 批量查找所有自定义函数

如果记不清所有函数名,可以遍历全局命名空间,筛选出你自己定义的函数并批量导出:

import inspect

# 遍历全局变量,过滤出自定义函数(排除第三方库和内置函数)
for name, obj in globals().items():
    if inspect.isfunction(obj) and obj.__module__ == '__main__':
        print(f"=== 函数: {name} ===")
        print(inspect.getsource(obj))
        print("\n" + "-"*60 + "\n")

这段代码会列出所有在当前内核中定义的自定义函数及其源码。

3. 处理动态创建的函数(inspect失效时)

如果你的函数是通过exec、eval等动态方式创建的,inspect.getsource可能无法获取源码,这时可以通过反编译字节码来还原逻辑:

import dis

# 替换为目标函数名
dis.dis(your_function_name)

反编译后的字节码会展示函数的执行逻辑,你可以根据这些信息重新编写函数代码。

注意事项

  • 所有操作必须在当前内核未重启前完成,一旦重启内核,加载的函数会全部消失。
  • 如果函数依赖其他自定义变量或嵌套函数,inspect.getsource会自动包含相关依赖代码,确保代码的完整性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:25:33