您好,登錄后才能下訂單哦!
本篇內容主要講解“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模塊實例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。