【问题标题】:What would be the proper naming convention for a Python module, class and instance variable having the same base name?具有相同基名的 Python 模块、类和实例变量的正确命名约定是什么?
【发布时间】: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

标签: python naming-conventions


【解决方案1】:

模块:abc 类:ABC

实例:实例可以像类一样命名,但绝对不是必需的。 在你的情况下,我会给变量一个描述实例的名称以避免命名冲突!

例子:

class Car:
    pass
audi = Car()
myCar = Car()
myBrothersCar = Car()

【讨论】:

    【解决方案2】:

    类名可以是AbcABC,具体取决于它是缩写还是普通名称。

    缩写示例:CRCCheckerTool

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2019-06-19
      • 2011-12-21
      相关资源
      最近更新 更多