您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“python和julia模塊實(shí)例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“python和julia模塊實(shí)例分析”吧!
模塊是一些互相隔離的工作空間,用法上類似于Python中的庫(kù),在Python中導(dǎo)入庫(kù)時(shí),使用import * as *
的方式,在Julia中,采用using或import導(dǎo)入要使用的模塊
我們的模塊內(nèi)容如下
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)中運(yùn)行using MyModule
時(shí),會(huì)提示錯(cuò)誤如下
REPL中提示錯(cuò)誤
vscode中提示錯(cuò)誤
這是因?yàn)镴ulia中并未找到該Module的位置,我們可以手動(dòng)添加進(jìn)來,在程序的最開始,加上push!(LOAD_PATH, ".")
,.
表示當(dāng)前工作目錄,也可以把.
換成絕對(duì)目錄;也可以先用cd dir
的命令切換到我們的Module的目錄,再直接使用push!(LOAD_PATH, ".")
,這樣就可以正確的調(diào)用MyModule了。
如果不想在程序中寫出來,也可以在~/.julia/config/startup.jl
文件中寫明,該文件指明了程序運(yùn)行時(shí)需要執(zhí)行哪些操作。在Windows中,~
指的是C:\User\UserName
目錄;MAC的~
指的是User\UserName
目錄。
MyModule中的export
是將這兩個(gè)函數(shù)導(dǎo)出來,這樣就可以直接使用my_square
和my_abs
函數(shù),而不必非要使用MyModule.my_square
和MyModule.my_abs
調(diào)用模塊的代碼如下
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
就可以不用加模塊名,沒聲明的話要加模塊名,不同的地方在于如果是函數(shù)的話,using
不允許給他們?cè)黾有碌姆椒?,只能使用他們,?code>import不僅可以使用,還可以為其增加新的方法。
import MyModule
my_square(x::Float64) = x * x
res = my_square(2.3)
println(res)
模塊和文件
模塊和文件并沒有關(guān)系,一個(gè)模塊可以有多個(gè)文件,一個(gè)文件也可以有多個(gè)模塊
一個(gè)模塊多個(gè)文件
module MyModu
include("file1.jl")
include("file2.jl")
end
一個(gè)文件多個(gè)模塊
module Test1
include("file1.jl")
end
module Test2
include("file2.jl")
end
標(biāo)準(zhǔn)模塊
有三個(gè)非常重要的標(biāo)準(zhǔn)模塊:Main,Core 和 Base
Main 是最頂層的模塊,Julia 啟動(dòng)后會(huì)將 Main 設(shè)置為當(dāng)前模塊。在提示符下定義的變量會(huì)進(jìn)入到 Main,執(zhí)行 varinfo() 會(huì)列出 Main 中的變量。
Core 包含所有語言內(nèi)置的標(biāo)識(shí)符(語言的核心部分,不是庫(kù)),每個(gè)模塊都默認(rèn)聲明了 using Core(否則的話啥也做不了)。
Base 模塊包含了一些基本的功能(即源碼中 base/ 目錄下的內(nèi)容)。所有模塊都默認(rèn)包含了 using Base,因?yàn)閷?duì)大多數(shù)庫(kù)來說,都會(huì)用到。
到此,相信大家對(duì)“python和julia模塊實(shí)例分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。