如果可能,我知道在其他語言(C#,JAVA,...)中使用"private"方法(使用兩個下劃線)static是很好的樣式。 有沒有對Python的建議?Python:如果可能,使私有類方法總是靜態的?
我寧願不讓它們成爲靜態的,因爲它們只是私有的(我不想將它們移動到實用程序類並且它們與性能無關),我想避免使用裝飾器混淆我的代碼。另一方面,靜態代碼分析器告訴我這樣做(並且我想用「Pythonic」方式編寫代碼)。
如果可能,我知道在其他語言(C#,JAVA,...)中使用"private"方法(使用兩個下劃線)static是很好的樣式。 有沒有對Python的建議?Python:如果可能,使私有類方法總是靜態的?
我寧願不讓它們成爲靜態的,因爲它們只是私有的(我不想將它們移動到實用程序類並且它們與性能無關),我想避免使用裝飾器混淆我的代碼。另一方面,靜態代碼分析器告訴我這樣做(並且我想用「Pythonic」方式編寫代碼)。
簡短的答案是你應該幾乎從不使用Python中的靜態方法。他們是added by mistake。
我的意思是實現類方法,但起初我不明白 他們和意外實現靜態方法第一次。 - Guido van Rossum
你幾乎可以肯定地用類方法或實例方法實現你想要的。
更多關於爲什麼Python中的靜態方法大多無用here。
非常感謝這個答案(包括有用的鏈接)! – charlyinalbon
在python中沒有像'private method'這樣的東西,所有的方法都是公開的。唯一告訴你方法不打算公開使用的是它的名字以下劃線開頭。
如果您的方法沒有引用self
(該類的一個實例)中的任何內容,那麼可以將它們設置爲靜態以優化應用程序的內存使用情況。
感謝有關私人和公共方法的評論。因此,我澄清了這個問題。 – charlyinalbon
你不太清楚你想要達到什麼目的。如果你不想讓這些方法靜態而不是忽略來自靜態代碼分析器的警告, – sc3w
我*的個人意見*就此不會使用靜態類方法,除非需要,無論是私人還是公共的。把事情簡單化。除非這是一個非常小的方法,經常變化,並且被證明會顯着減慢整個程序,否則優化每一個微小的位是沒有意義的。 –