Python 是否从Elm中的嵌套目录导入模块?
如果我有这样的目录结构:Python 是否从Elm中的嵌套目录导入模块?,python,import,elm,multi-module,Python,Import,Elm,Multi Module,如果我有这样的目录结构: src ├── Commands.elm ├── Decoders.elm ├── Main.elm ├── Messages.elm ├── Models.elm ├── Page │ ├── Cats │ │ ├── Main.elm │ │ ├── Style.elm │ │ └── ... │ ├── Pieces │ │ ├── Main.elm │ │ ├── Style.elm │
src
├── Commands.elm
├── Decoders.elm
├── Main.elm
├── Messages.elm
├── Models.elm
├── Page
│ ├── Cats
│ │ ├── Main.elm
│ │ ├── Style.elm
│ │ └── ...
│ ├── Pieces
│ │ ├── Main.elm
│ │ ├── Style.elm
│ │ └── ...
│ └── Players
│ ├── Main.elm
│ ├── Style.elm
│ └── ...
├── Routing.elm
├── Style
│ ├── Index.elm
│ ├── MainCss.elm
│ └── Main.elm
├── Update.elm
└── View.elm
我找到了一些示例,展示了如何从目录导入模块,但找不到如何从子驱动器导入模块的示例。
例如,如何在View.elm
中导入Page/Cats/Main.elm
在Python中,我会在每个嵌套目录中放置一个
\uuuu init\uuuuuuuuuuuupy
,将它们转换成包,这样我就可以从Page import Cats或Page.Cats import Main访问其中的模块。Elm中有类似的概念吗?假设src
位于Elm package.json
的源目录中,只需确保该文件中的模块名称与路径匹配,即Page.Cats.Main
:
module Page.Cats.Main exposing (add)
add x y = x + y
然后在View.elm
中导入:
import Page.Cats.Main
-- You can now call functions defined in that module like this:
-- Page.Cats.Main.add 1 2
这就解决了!我不知道在公开模块时必须镜像目录结构。谢谢你的快速回复!是的,模块名称必须与文件路径匹配。这就是Elm编译器为每个导入查找模块文件的方式。