Python模块、类和实例变量同名时的命名规范是什么?
首先,我对PEP8是很了解的,但有时候它对命名的规则并不是特别清晰。
假设我们有一个缩写叫做ABC
。
- 模块应该命名为:
abc
- 模块里面的类应该命名为:
Abc
还是ABC
?(不太确定) - 实例的变量应该命名为
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()
这个类大多数时候是作为单例使用的,所以我找不到其他名字来给这个实例命名。
2 个回答
0
类的名字可以是 Abc
或者 ABC
,这取决于它是一个缩写还是一个普通的名字。
比如说,如果是缩写的话,可以用 CRCCheckerTool
这个名字。
1
模块:abc
类:Abc
实例:实例的名字可以和类的名字一样,但其实并不是必须这样做。在你的情况下,我建议给这个变量起个能描述实例的名字,这样可以避免名字冲突!
举个例子:
class Car:
pass
audi = Car()
myCar = Car()
myBrothersCar = Car()