我發現自己不確定是否應該將我在我的類中使用的某些變量設置爲私有類變量(例如_var)與類常量變量(例如VAR)相比私有類常量變量,如果這樣的話使用(例如_VAR)。我意識到除了約定之外,這在Python中並不重要,但是想知道哪種方式是正確的(或者更正確)。當變量應該設置爲私有類變量(例如_var)與類常量(例如VAR)相比私有類常量(例如_VAR)時?
例如,假設我有一個用於存儲高度正則表達式的特定變量。假設我無意在課程中的任何地方或代碼中的其他地方修改此代碼,實際上我只在其中一個類方法中使用它,我應該使用它:
選項1 - 設置爲私有類變量:
_height_pattern = r"""(#'##?"?)|#'"""
選擇2 - 設置爲常數類變量
HEIGHT_PATTERN = r"""(#'##?"?)|#'"""
選擇3 - 設置爲常數私有類變量(不知道這樣的事情存在,或者如果我有生以來看到這個變量聲明)
_HEIGHT_PATTERN = r"""(#'##?"?)|#'"""
或者還有一些其他的選擇,我沒有想到。請注意,在這種情況下,我選擇了一個變量,我認爲人們可以通過這種方式或另一種方式做出正確的判斷。不過,也有其他一些我覺得它會更模糊的例子。例如,如果我有一個隨機種子變量(_SEED = 2000?),它的變化不會對功能產生根本影響?因此,如果你可以分享一些容易遵循的經驗法則,那也是值得讚賞的。
如果有什麼變化所花的時間一點點計算 - 例如,依靠str.maketrans,和雖然它僅用於1類方法,但是該類方法被多次重複調用(它應用於大數據集中的每一行),是否應該堅持將它作爲類變量來保存累積的處理時間? – blu
不確定'str.maketrans'會是一個很好的例子,因爲將'maketrans'應用於腳本初始化的值可能不是一個好主意,因爲它的返回值可能在每次調用時都會有所不同(否則它不會有意義使用它而不是使用我認爲的最終值)。不過,如果是這樣的話,我會說我的答案的最後一段適用。 – lucasnadalutti