当变量应该设置为私有类变量(例如_var)vs类常量(例如VAR)vs私有类常量(例如_VAR)?

时间:2016-11-25 18:58:44

标签: python coding-style

我发现自己不确定是否应该将我在类中使用的某些变量设置为私有类变量(例如_var)vs类常量变量(例如VAR)与私有类常量变量(如果是这样)使用了一个东西(例如_VAR)。我意识到除了惯例之外,这在Python中并不重要,但想知道哪种方式是正确的(或更正确)。

例如,让我说我有一个特定的变量来存储高度的正则表达式。让我们说我无意在类中或代码中的其他地方修改它,事实上我只在其中一个类方法中使用它,我应该使用它:

选项1 - 设置为私有类变量:

_height_pattern = r"""(#'##?"?)|#'"""

选项2 - 设置为常量类变量

HEIGHT_PATTERN = r"""(#'##?"?)|#'"""

选项3 - 设置为常量私有类变量(不确定是否存在这样的东西,或者我是否曾经看到过为此声明的变量)

_HEIGHT_PATTERN = r"""(#'##?"?)|#'"""

或许还有其他一些我没想过的选择。请注意,在这种情况下,我选择了一个变量,我认为人们可以通过这种方式或其他方式做出好的理由。但是,还有其他情况我觉得它更模糊。例如,如果我有一个随机种子变量(_SEED = 2000?),其变化不会对功能产生根本影响,该怎么办?因此,如果您可以分享一些易于遵循的经验法则,那么也应该受到赞赏。

2 个答案:

答案 0 :(得分:1)

  

实际上我只在其中一个类方法中使用它

然后毫无疑问,这根本不应该是一个类变量。我会在方法中将其声明为常量。

但是,我知道你的问题比你给出的这个例子更广泛,所以让我们想象一下你所说的这个变量将用于多种方法。在这种情况下,因为我也从未见过像选项3这样的东西(并且它很丑陋),你应该使用选项2,因为你的代码说这个变量不是<更重要/ strong>要修改而不是告诉它不应该在其类之外访问。

答案 1 :(得分:0)

根据pep-0008常量,应该全部使用,并在需要时使用下划线。示例HEIGHT_PATTERN

作为更一般的注释编码&#34;风格&#34; for python可以在第8页找到(见上面的链接)