python:命名一个有两个单词nam的模块

2024-04-29 02:30:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个非常简单的模块和一个.py源文件放在一起,但已经遇到了障碍。我本来想叫它scons-config,但是import scons-config在Python中不起作用。我找到了this SO question并查看了PEP8 style guide但是我有点困惑,它没有提到两个单词的名称约定。

处理这个问题的正确方法是什么?

  • 课程名称:SconsConfig?scons_配置?sconsconfig?scons.config?
  • 其中单个.py文件的名称:scons-config.py?scons_config.py?

编辑:我确实看到了“不鼓励使用下划线”,这让我陷入了死胡同:我应该使用“scons config”还是“scons_config”(我想其他的都不在)?


Tags: 模块pyimport名称configsostylethis
3条回答

首先,模块名与单个.py文件的名称相同。在Python语言中,几个.py文件的集合是一个包。

PEP-8不鼓励用下划线拆分包名称。“我的网站包”目录中的一个快速峰值显示多字名称通常只是一起运行(例如,setuptools、sqlalchemy)

模块名(即文件名)可以用下划线分隔(我通常这样做,因为我讨厌那些连在一起的名字,比如oucanhardlreadthem)。

只使用小写字母(根据PEP-8)。这避免了从区分大小写的文件系统到不区分大小写的文件系统的问题,反之亦然。

除了PEP-8之外,您还可以查看本机Python模块如何处理这个问题。

如果您将the native modules of Python 2that of Python 3进行比较,您会发现官方dev的新趋势是避免使用大写和下划线。例如,Python 2中的ConfigParser在Python 3中变为configparser

考虑到这一点,最好的做法是避免大写和下划线,只需将单词连接在一起,即sconsconfig

如果必须,请始终使用下划线_

使用点.甚至不起作用,否则

from scons.config import whatever

会崩溃的。

但是PEP 8清楚地描述了它:

Package and Module Names

Modules should have short, all-lowercase names. Underscorescan be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.

更新:

直接针对你的问题:我认为sconsconfig很好。它不太长,可读性很强。

但老实说,我不认为有人会责怪你,如果你使用下划线,你的代码将运行与两个决定。总有一个特定的层次,你不应该再关心了。

相关问题 更多 >