【问题标题】:Call a function written in different file from jupyter notebook从 jupyter notebook 调用用不同文件编写的函数
【发布时间】:2017-06-07 04:58:09
【问题描述】:

我想从一个 jupyter notebook 调用一个写在另一个 .ipynb 文件中的函数。部分答案由drevicko 在此线程Reusing code from different IPython notebooks 中给出。例如,我正在使用plus_one 编写的plus_one.ipynb 函数:

def plus_one(x):
    print(x + 1)

然后,在我当前的笔记本中,我执行单元格:

%run plus_one.ipynb 3

这没有给我任何输出。我的预期输出是4。如何将参数 (3) 传递给此脚本?谢谢!

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    来自%run? 文档

    这类似于在系统提示符下运行python file args, 但它的优势在于为您提供 IPython 的回溯,以及 将所有变量加载到您的交互式命名空间中以供进一步使用

    所以plus_one.ipynb 中的所有单元格都将运行,并且它的所有变量都将添加到调用笔记本的命名空间中。 这不会直接调用plus_one 方法(除非它在另一个笔记本中调用),但它在当前命名空间中定义它,有点像常规python 脚本中的import。所以从那一刻起,你应该能够在调用笔记本中执行plus_one(3),并期望 4 作为返回值

    【讨论】:

    • 宾果游戏!它按描述工作。非常感谢! (抱歉没有足够的声誉来支持您的答案......)
    • 感谢您很好地解释它。虽然我不得不重新运行 %run notebook 命令两次 3 次,但它实际上在当前命名空间中注册了该函数。
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2018-04-13
    • 2021-03-08
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    相关资源
    最近更新 更多