【发布时间】:2011-10-27 11:30:51
【问题描述】:
首先,我完全了解PEP8,但有时不太清楚应该如何命名。
假设我们有 ABC 作为缩写。
-
模块应命名为:
abc -
模块内的类应该命名为:
Abc还是ABC? (不确定) -
Instance 变量应该命名为
abc
# abc.py
CONSTANT = "foo"
class Abc(object):
pass
# test.py
import abc
print abc.CONSTANT
abc_ = abc.Abc() # oops, if I use `abc` will lose ability to access abc.FOO ?
如果您在abc 模块中有一个常量,您可能希望从外部使用abc.CONSTANT 访问它,但如果您也有同名的实例,就不清楚了吗?
如果有一个干净的方法来解决这类问题?如果您只使用一个简单的单词而不是首字母缩写词,解决方案会有所不同吗?
注意:Abc() 类大部分时间都是单例,因此我无法为该实例找到另一个名称。
【问题讨论】:
-
在 Python 中,一个模块通常不限于单个类,因此您已经可以避免那里的命名问题。尝试将常见的类对象分组到一个更通用的模块中。
-
对于单例,通常使用命名约定 [className]Instance。例如:abcInstance