gpt4 book ai didi

python模块层次结构命名约定

转载 作者:太空狗 更新时间:2023-10-29 20:38:54 26 4
gpt4 key购买 nike

我想要如下的模块/包结构:

/__init__.py
/mymodule.py
/mymodule/
/mymodule/__init__.py
/mymodule/submodule.py

然后使用如下模块:

import mymodule
import mymodule.submodule

但似乎文件“mymodule.py”与“mymodule”目录冲突。

此处正确的命名约定是什么?

最佳答案

如果你想做一个包,你必须了解 Python 如何将文件名翻译成模块名。

文件 mymodule.py 将作为 mymodule 提供,假设解释器在 Python 搜索路径的目录中找到它。如果您使用的是不区分大小写的文件系统,它也可能可以使用不同的大写字母导入(但您应该避免使用这种依赖于系统的行为)。

包是一个包含__init__.py 文件的目录。最近有一些 Action 允许没有这些文件的包,但我将忽略这个答案的不太常见的情况。包成为 Python 中的一个模块,其代码来自 __init__.py 文件。因此文件 mypackage/__init__.py 可以导入为 mypackage

直接在 Python 搜索路径中的 __init__.py 文件没有任何意义(好吧,我想你可以将它导入一个 __init__ 模块,但这可能是一个坏主意)。

因此,对于您的情况,这是适当的文件系统布局:

toplevel/
mymodule/
__init__.py # put code here for mymodule
submodule.py # put code here for mymodule.submodule

只有 toplevel 文件夹应该在 Python 搜索路径中。

关于python模块层次结构命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com