我发现自己不确定是否应该将我在类中使用的某些变量设置为私有类变量(例如_var)vs类常量变量(例如VAR)与私有类常量变量(如果使用这样的东西)(例如_VAR).我意识到除了惯例之外,这在
Python中并不重要,但想知道哪种方式是正确的(或更正确).
例如,假设我有一个用于存储高度的正则表达式模式的变量.假设我无意在类中或代码中的其他地方修改它,实际上我只在其中一个类方法中使用它,我应该使用它:
选项1 – 设置为私有类变量:
_height_pattern = r"""(#'##?"?)|#'"""
选项2 – 设置为常量类变量
HEIGHT_PATTERN = r"""(#'##?"?)|#'"""
选项3 – 设置为常量私有类变量(不确定是否存在这样的东西,或者我是否曾经看过为此声明的变量)
_HEIGHT_PATTERN = r"""(#'##?"?)|#'"""
或者也许是其他一些我没有想过的选择.请注意,在这种情况下,我选择了一个变量,我认为人们可以通过这种方式或其他方式做出好的结果.但是,还有其他情况我觉得它更模糊.例如,如果我有一个随机种子变量(_SEED = 2000?),其变化对功能没有根本影响怎么办?因此,如果您可以分享一些易于遵循的经验法则,那也值得赞赏.
最佳答案
and in fact I only use it in one of the class methods
那么毫无疑问,这根本不应该是一个类变量.我会在方法中声明它作为常量.
但是,我知道你的问题比你给出的这个例子更广泛,所以让我们假设你所说的这个变量将被用在多个方法中.在这种情况下,因为我也从未见过像选项3那样的东西(而且它很丑陋),你应该使用选项2,因为更重要的是你的代码说这个变量不被修改而不是告诉它不应该在课外访问.