加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

iJulia笔记本(iPython)文件

发布时间:2020-12-20 11:37:02 所属栏目:Python 来源:网络整理
导读:在我的带有iJulia的i Python笔记本中,是否可以调用(函数)其他文件?到目前为止,我使用所有方法在一个大的.ipynb文件中工作,但它变得太大了.有没有办法将一些功能传输到其他文件,以便从那里调用它们? 解决方法 您可以在.jl文件中定义函数,然后将其包含在笔记
在我的带有iJulia的i Python笔记本中,是否可以调用(函数)其他文件?到目前为止,我使用所有方法在一个大的.ipynb文件中工作,但它变得太大了.有没有办法将一些功能传输到其他文件,以便从那里调用它们?

解决方法

您可以在.jl文件中定义函数,然后将其包含在笔记本中.

如果你有一个名为test.jl的文件,其内容如下:

function helloworld()
    println("Hello,World!")
end

然后,您可以从笔记本中调用它,它将被评估.然后,您可以正常使用文件中定义的函数:

In [1]: include("test.jl")    
Out[1]: helloworld (generic function with 1 method)

In [2]: helloworld()
Hello,world!

编辑:
从另一个ipynb文件运行代码要复杂得多,因为代码被整理到笔记本的json中.如果你真的想要这个功能应该工作:

using PyCall
function execute_notebook(nbfile)
    @pyimport IPython.nbformat.current as ipyt
    open(nbfile) do f
        nbstring = readall(f)
        nb = ipyt.reads(nbstring,"json")
        for cell in nb["worksheets"][1]["cells"]
            eval(parse(cell["input"]))
        end
    end
end

它目前抛出一个错误,但它似乎仍然有效.如果你有一个定义了相同helloworld()函数的test.ipynb,那么你可以从另一个笔记本中调用它:

execute_notebook("test.ipynb")
helloworld()

我仍然建议保留要从.jl文件中的其他位置而不是.ipynb文件中调用的代码.它更简单,可能更强大.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读