溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python和julia模塊實(shí)例分析

發(fā)布時(shí)間:2022-03-22 16:41:07 來源:億速云 閱讀:362 作者:iii 欄目:大數(shù)據(jù)

本篇內(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ò)誤

python和julia模塊實(shí)例分析

vscode中提示錯(cuò)誤

python和julia模塊實(shí)例分析

這是因?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_squaremy_abs函數(shù),而不必非要使用MyModule.my_squareMyModule.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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI