python和julia模块实例分析
本篇内容主要讲解“python和julia模块实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python和julia模块实例分析”吧!
创新互联专业为企业提供大东网站建设、大东做网站、大东网站设计、大东网站制作等企业网站建设、网页设计与制作、大东企业网站模板建站服务,十载大东做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
模块
模块是一些互相隔离的工作空间,用法上类似于Python中的库,在Python中导入库时,使用import * as *
的方式,在Julia中,采用using或import导入要使用的模块
我们的模块内容如下
module MyModule
export my_square, my_abs
# square function
my_square(x::Int64) = x * x
# abs function
my_abs(x) = (x>=0) ? x : -x
# add function
my_add(x,y) = x + y
# minus function
my_minus(x,y) = x - y
# multiply function
my_multiply(x,y) = x * y
end
在REPL中或者vscode(Atom)中运行using MyModule
时,会提示错误如下
REPL中提示错误
vscode中提示错误
这是因为Julia中并未找到该Module的位置,我们可以手动添加进来,在程序的最开始,加上push!(LOAD_PATH, ".")
,.
表示当前工作目录,也可以把.
换成绝对目录;也可以先用cd dir
的命令切换到我们的Module的目录,再直接使用push!(LOAD_PATH, ".")
,这样就可以正确的调用MyModule了。
如果不想在程序中写出来,也可以在~/.julia/config/startup.jl
文件中写明,该文件指明了程序运行时需要执行哪些操作。在Windows中,~
指的是C:\User\UserName
目录;MAC的~
指的是User\UserName
目录。
MyModule中的export
是将这两个函数导出来,这样就可以直接使用my_square
和my_abs
函数,而不必非要使用MyModule.my_square
和MyModule.my_abs
调用模块的代码如下
using MyModule
using MyModule:my_add, my_multiply
res1 = MyModule.my_square(2)
res2 = my_square(3)
res3 = my_abs(-4)
res5 = my_add(3,4)
res6 = MyModule.my_minus(4,3)
res7 = my_minus(4,3) # error
我们还可以使用import MyModule
语句,基本用法相同,如果申明了export
就可以不用加模块名,没声明的话要加模块名,不同的地方在于如果是函数的话,using
不允许给他们增加新的方法,只能使用他们,而import
不仅可以使用,还可以为其增加新的方法。
import MyModule
my_square(x::Float64) = x * x
res = my_square(2.3)
println(res)
模块和文件
模块和文件并没有关系,一个模块可以有多个文件,一个文件也可以有多个模块
一个模块多个文件
module MyModu
include("file1.jl")
include("file2.jl")
end
一个文件多个模块
module Test1
include("file1.jl")
end
module Test2
include("file2.jl")
end
标准模块
有三个非常重要的标准模块:Main,Core 和 Base
Main 是最顶层的模块,Julia 启动后会将 Main 设置为当前模块。在提示符下定义的变量会进入到 Main,执行 varinfo() 会列出 Main 中的变量。
Core 包含所有语言内置的标识符(语言的核心部分,不是库),每个模块都默认声明了 using Core(否则的话啥也做不了)。
Base 模块包含了一些基本的功能(即源码中 base/ 目录下的内容)。所有模块都默认包含了 using Base,因为对大多数库来说,都会用到。
到此,相信大家对“python和julia模块实例分析”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
当前名称:python和julia模块实例分析
URL标题:http://ybzwz.com/article/jogogj.html