咨询Julia中文件、目录结构与模块、包的关联关系
Julia中包(Package)与模块(Module)的关联及目录结构影响疑问
我的初步理解
- 包似乎只是模块的集合,但不确定是否有更深层次的关联
- 代码必须定义在文件中,因此包至少包含1个文件,且该文件可通过
module关键字定义1个或多个模块 - 包必须是包含1个或多个文件的目录
- 模块需显式声明,文件名不必与模块名一致,单个文件也不代表一个模块
与Python/Rust的对比思考
Python中的包与模块
在Python中,包是目录,匿名包出现后,空的
__init__.py文件不再是必需的(过去用于标记目录为Python包,现在可选)。
Python中每个文件本身就是一个模块,模块名是去掉.py扩展名的文件名;若按层级目录组织,子目录名会成为子包。
包、子包和模块差异不大,都定义命名空间,模块作为文件包含实际代码。
Python无需显式声明模块或命名空间,由文件和目录的名称及结构隐式定义,导入代码只需import X这类语句——相当于自动完成了Julia中的include步骤,因为模块名与文件名一一对应。
Rust中的包与模块(模糊记忆)
目录结构对定义包和模块结构很重要,机制与Python类似。
Julia的特性感知
Julia的包/模块机制更像C或C++,代码需先通过
include引入,才能用import或using导入。
核心疑问
我想咨询:在Julia中,以下概念是否会对包和模块的工作机制产生影响?
- 目录名
- 文件名
- 文件系统树的层级结构
内容的提问来源于stack exchange,提问作者user2138149
相关产品推荐
相关产品推荐

