Python模块、类和实例变量同名时的命名规范是什么?

2 投票
2 回答
1243 浏览
提问于 2025-04-17 05:06

首先,我对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()

撰写回答