当我想在python中导入一个包时,我可以将它别名:
import package_with_a_very_long_nameeeeee as pl
在该语句之后,我可以通过别名来引用包:
pl.foo()
julia允许我做:
using PackageWithAVeryLongName
pl = PackageWithAVeryLongName
pl.foo()
但它感觉像一个丑陋的黑客,可能有我不理解的含义。
在julia中是否有一种习惯的方法来别名导入的包?
现在可以在即将发布的Julia 1.6中使用与Python完全相同的语法:
julia> import LinearAlgebra as LA
julia> typeof(LA)
Module
help?> LA.svd
svd(A; full::Bool = false, alg::Algorithm = default_svd_alg(A)) -> SVD
在以前的版本中,你可以按照@Bill的建议去做——但是我强烈建议将const
赋值与import
:
julia> import SparseArrays
julia> const SA = SparseArrays
SparseArrays
python:
>>> import matplotlib as plt
>>> type(plt)
<class 'module'>
>>>
朱莉娅:
julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]
julia> const plt = Plots
Plots
julia> typeof(plt)
Module
所以,语言之间的效果几乎是相同的。可能使这种用法不太理想,因此在Julia中看起来很难看的是,多重分派通常允许从多个模块导出函数名而不会产生冲突,因为它们的参数通常不同。因此,必须在函数名前面加上模块别名,这可能意味着需要导出某些东西,但没有随模块一起导出。例外应该是很少的。