Julia中类似Python中的"as"的语法是什么?

4
当我想在Python中导入一个包时,我可以给它起一个别名:
import package_with_a_very_long_nameeeeee as pl

在那个语句之后,我可以通过它的别名来引用这个包:

pl.foo()

朱利亚语言让我可以做到以下事情:
using PackageWithAVeryLongName
pl = PackageWithAVeryLongName
pl.foo()

但它感觉像是一个丑陋的hack,可能有我不理解的影响。

在Julia中是否有一种惯用的方法来为导入的包设置别名?

2个回答

8

在即将发布的 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

0

Python:

>>> import matplotlib as plt
>>> type(plt)
<class 'module'>
>>>

julia:

julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]
julia> const plt = Plots
Plots
julia> typeof(plt)
Module

所以,语言之间的效果基本相同。然而,在Julia中,这种用法可能不太理想,看起来有些丑陋,因为多重分派通常允许从多个模块导出函数名称而不会发生冲突,因为它们的参数通常不同。因此,必须在函数名之前加上模块别名,这可能意味着某些需要导出的内容没有与模块一起导出。这种情况应该很少见。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接