我正在尝试将一个包含一个.py源文件的非常简单的模块组合在一起,并且已经遇到了一个障碍。我本来打算叫它scons-config
,但import scons-config
在Python中不起作用。我找到了这个问题,看了看PEP8风格指南,但有点困惑,它不谈两个字的名字约定。
处理这件事的正确方法是什么?
编辑:我确实看到了“不鼓励使用下划线”,这让我陷入了死胡同:我应该使用"sconsconfig“还是"scons_config”(我猜其他的已经过时了)?
发布于 2010-05-17 12:00:00
如果有必要,请始终使用下划线_
。
使用点.
甚至不能工作,否则
from scons.config import whatever
就会崩溃。
但是PEP 8清楚地描述了它:
包和模块名称 模块应该有短的、全小写的名称.如果下划线提高了的可读性,则可以在模块名中使用。Python 包也应该有短的、全小写的名称,尽管使用下划线是不鼓励的。
更新:
直接针对你的问题:我认为sconsconfig
很好。它不是太长,也不是很可读的。
但是老实说,如果您使用下划线,并且您的代码将与任何一个决定一起运行,我认为没有人会责怪您。总有一定的水平,你不应该再关心那么多。
发布于 2010-05-17 12:08:00
首先,模块名与单个.py文件的名称相同。在Python中,几个.py文件的集合是一个包。
PEP-8不鼓励用下划线分割包名。在我的站点包目录中,一个快速的峰值显示多个单词名称通常只是一起运行(例如setuptools,sqlalchemy)。
模块名称(即文件名)可以用下划线来划分(我通常会这样做,因为我讨厌一起运行的名称-您可以硬地读它们)。
只使用小写( PEP-8)。这避免了从区分大小写到不区分大小写的文件系统的问题,反之亦然。
发布于 2016-04-19 02:59:26
除了PEP-8之外,您还可以查看原生Python模块是如何处理这个问题的。
如果您要将Python 2的本机模块与Python 3进行比较,您会发现官方开发人员的新趋势是避免大写和下划线。例如,Python2中的ConfigParser
在Python3中变为configparser
。
考虑到这一点,最好的做法是避免大写和下划线,只需将单词连接在一起,即sconsconfig
。
https://stackoverflow.com/questions/2852283
复制