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

如何在Python函数内使用%store魔术命令存储变量供其他Jupyter notebook使用

报错原因

%store 是IPython内核提供的魔术命令,默认只能读取全局命名空间中的变量。你代码里的df3是fun3的局部作用域变量,魔术命令无法直接访问局部作用域内的变量,因此触发未知变量报错。

解决方案

两种可行方案,按需选择:

方案1:在函数内部调用IPython API实现存储(不需要暴露变量到全局)

直接调用魔术命令的底层API,主动传入局部变量参数即可,修改后的fun3代码如下:

def fun3(df1, df2, df3):
    df3.to_csv("df3.csv", index=False)
    # 替换原%store行,调用IPython底层API执行存储
    get_ipython().run_line_magic('store', 'df3')
    return df1, df2, df3

注意:该写法仅在IPython/Jupyter环境生效,原生Python解释器不支持get_ipython()方法

方案2:函数外部执行存储(无环境兼容问题)

不需要修改函数代码,在全局作用域调用函数拿到返回的df3后,再执行%store命令即可:

# 先执行你的函数流程拿到df3
df1, df2 = fun1()
df1, df2, df3 = fun2(df1, df2)
df1, df2, df3 = fun3(df1, df2, df3)

# 全局作用域下执行store,此时df3是全局变量可被识别
%store df3
跨Notebook读取说明

其他Jupyter notebook中要读取存储的df3时,执行以下命令即可加载:

%store -r df3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:57:04